Frequency domain processing of Doppler signals in a traffic monitoring system

ABSTRACT

Frequency domain processing is used to determine rapidly whether false signals are present, and to improve the accuracy of speed measurements by rejecting speed measurements that could be inaccurate due to the presence of false signals. A Doppler signal responsive to speed of a moving vehicle is generated by a Doppler radar transceiver. A digital computer transforms the Doppler signal into a frequency domain signal such as an energy spectrum, and the speed of the moving vehicle is computed from the weighted arithmetic mean of the energy spectrum. The mean value, however, is rejected as an indication of speed if the variance of the energy spectrum from the mean exceeds a threshold, or if a differential of the spectrum with respect to frequency exceeds a threshold. The frequency domain processing of the present invention can also be used to reject certain bands of frequencies in the Doppler signal, such as bands of frequencies that differ from the mean value by more than a threshold, and the mean value can then be recomputed to provide an even better indication of the speed of the moving vehicle. Moreover, speed samples computed from successive frames of spectrum can be averaged, and the average value can be rejected as an indication of speed if the variance of the speed samples about the average value exceeds a threshold, or if the difference between successive speed samples exceeds a threshold.

This application is a continuation of application Ser. No. 08/252,331,filed Jun. 1, 1994, now abandoned.

RELATED APPLICATIONS

The present application includes a disclosure common to the followingcommonly-assigned applications having the same filing date as thepresent application: Clint A. Davis and Gary L. Mee, "Traffic MonitoringSystem"; Clint A. Davis, "Annotation of Photographic Film WithAlphanumeric Data By Using Fiber Optics"; Clint A. Davis and Gary L.Mee, "Doppler-Shift Radar Transceiver for Traffic Monitoring System";and Clint A. Davis and Gary L. Mee, "High-Speed Camera for TrafficMonitoring System."

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to traffic monitoring, and moreparticularly to recording information about moving vehicles.Specifically, the present invention relates to frequency-domaintechniques for processing a Doppler signal from a Doppler-shift radartransceiver in order to determine with a high level of confidencewhether a vehicle is exceeding a specified speed limit.

2. Description of the Background Art

Automatic traffic monitoring systems have been operated in the UnitedStates since about 1986. Automatic traffic monitoring systems are usedfor detecting speed violations, red-light violations, and drunk-driving(DUI) violations. The systems reduce traffic accidents, and generate"fine" revenue that pays for the cost of installing and maintaining thesystems.

For detecting and recording speed violations, an automatic trafficmonitoring system includes a Doppler-shift radar transceiver and ahigh-speed camera triggered by the radar transceiver. The high-speedcamera takes a picture of the front of the approaching vehicle, and asecond camera may be used to take a picture of the rear of the vehicleafter the vehicle passes the location of the traffic monitoring system.An alphanumeric data block containing the measured vehicle speed, date,time, and location is also recorded on a portion or edge of thephotograph. A video camera may be used to record a motion picture of thetraffic, and the alphanumeric data has been interleaved with the videopicture on a video display and recorded on a video cassette recorder(VCR). A display may also be deployed at the monitoring site to displaythe measured speed to those drivers which were photographed. Detailedinformation from each monitoring session is also recorded on computerdiskette. The detailed information can be used in traffic studies, andalso in traffic court to demonstrate that a motorist was indeedtraveling faster than surrounding traffic.

The accuracy of speed measurement is a primary consideration in thedesign of any traffic monitoring system intended to detect speedviolations. It is well-known that radar reflections from recedingtraffic can interfere with reflections from approaching traffic. Todiscriminate between approaching and receding vehicles, the radartransceiver employs a quadrature-detector providing an indication of thedirection of travel of the vehicle with respect to the radartransceiver. Reflections from receding vehicles are ignored. Moreover,as a vehicle passes through the radar beam, more than a hundred speedmeasurements are taken. Any bad readings are recognized and discarded.If the distribution of measurements is not found to match a cosinedecay, the measurements are deemed to be inconclusive.

Another important consideration in the design of a traffic monitoringsystem for detecting moving violations is to obtain a clear picture ofthe offending vehicle. A high-powered flash fitted with a ruby coloredfilter has been used to illuminate the vehicle and driver. During theday, the flash helps to reduce glare so that the driver is more visiblein the photograph. At night, the flash provides the light required toilluminate the entire scene for the photograph. The flash is alsotriggered when the vehicle is at a rather precise distance from thecamera. The radar beam, for example, is directed by an antenna having aconical horn and a 7 inch dielectric lens providing a narrow half-powerbeam-width of 5 degrees, and the beam intersects the roadway at a 221/2degree angle. The effective range of the radar is 300 feet, so that thevehicle's location is precisely known when it first enters the radarbeam. The first few speed measurements determine if a photograph shouldbe taken. A computer analyzes the complete group of measurements andcompares them to an expected cosine decay. The speed of the vehicle isimprinted on the film only when the complete set of measurements hasbeen verified.

Due to the loss of right resulting from a conviction for a speedingviolation, there is always a desire for improvement in the level ofconfidence associated with the determination of a vehicle's speed. Onetroublesome source of inaccuracy is the possibility of multiple vehiclesbeing present in the radar beam, for example, when one vehicle passesanother. In such a situation, the Doppler signal may have an averagefrequency that is representative of neither of the speeds of thevehicles. Systems that measure the frequency of the Doppler signal bycounting level crossings of the Doppler signal measure the averagefrequency of the Doppler signal and therefore may give an erroneousspeed measurement. A more troublesome source of interference isreflections from tires. A reflection from the top of a tire, forexample, indicates a speed twice as fast as the speed of the vehicle.

Electronic tracking filters have been used to select Doppler signals indifferent frequency ranges. As described in John Hewer, "High TechnologyInstrument Foils Hasty," Canadian Electronics Engineering, August 1979,pp. 30-31, such a tracking filter can be used in traffic monitoringsystem mounted in a moving surveillance vehicle in order to discriminatebetween a Doppler signal frequency representing the speed of the movingsurveillance vehicle, and a Doppler signal frequency representing thespeed of another vehicle relative to the speed of the movingsurveillance vehicle. Mr. Hewer says that the tracking filter alsoovercomes the effect of weak Doppler signals and permits the system topick the lowest or highest frequency in any given spectral range withoutthe need for large signal amplitude priority.

SUMMARY OF THE INVENTION

The primary goal of the present invention is to use frequency-domainprocessing of a Doppler signal to obtain more accurate speedmeasurements. In contrast to an active tracking filter which has arelatively narrow bandwidth and may lock onto false signals, thefrequency domain-processing of the present invention may determinerapidly whether false signals are present, and obtains more accuratespeed measurements by rejecting or invalidating speed measurements thatcould be inaccurate due to the presence of false signals. False signals,for example, may be caused by multiple vehicles being present in theradar beam, or by reflections from tires.

In accordance with one aspect of the present invention, there isprovided a method of determining a speed of a moving vehicle. The methodincludes the steps of operating a Doppler radar transceiver to generatea Doppler signal responsive to the speed of the moving vehicle; andoperating a digital computer to transform the Doppler signal into afrequency-domain signal, and to determine the speed of the movingvehicle by computing a statistic of the frequency-domain signal. Thedigital computer, for example, transforms the Doppler signal into afrequency-domain signal by computing a fast Fourier transform of theDoppler signal, and the speed of the moving vehicle is computed from theweighted arithmetic mean of the energy spectrum of the Doppler signal.The mean value, however, is rejected as a correct indication of speed ifthe variance of the energy distribution exceeds a threshold. The meanvalue can also be rejected by computing a differential of the frequencydomain signal with respect to frequency, and comparing the differentialto a threshold, and rejecting the mean value as a correct indication ofthe speed of the vehicle when the differential exceeds the threshold.

The frequency-domain processing of the present invention can also beused to reject certain bands of frequencies in the Doppler signal.According to another aspect of the present invention, for example, themethod includes the steps of identifying portions of thefrequency-domain signal having frequencies that differ from the meanvalue by more than a threshold, and recomputing the mean value whileexcluding the identified portions of the frequency-domain signal, sothat the recomputed mean value is an even better indication of the speedof the moving vehicle.

In accordance with another aspect of the invention, respective groups ofsuccessive samples of the Doppler signal are converted by a discreteFourier transform to successive frames of spectrum, a series of speedsamples are computed from the successive frames of spectrum, and aplurality of the speed samples are averaged in order to compute thespeed of the moving vehicle. The method may also including the steps ofcomputing a variance of the speed samples from the average, andcomparing the variance of the speed samples to a threshold in order tovalidate the computed speed of the moving vehicle. The method mayfurther include the steps of computing differences between successivespeed samples, and comparing the differences to a threshold in order tovalidate the computed speed of the moving vehicle.

In accordance with another aspect of the present invention, there isprovided a traffic monitoring system including a Doppler radartransceiver for emitting a radar beam and generating a Doppler signalresponsive to speed of a vehicle when the vehicle passes through theradar beam; an analog-to-digital converter connected to the Dopplerradar transceiver for converting the Doppler signal into a series ofdigital samples; and digital computer means connected to theanalog-to-digital converter for computing a discrete Fourier transformof successive groups of the series of digital samples to produce aseries of frames of spectrum, and from the series of frames of spectrum,to detect the presence of the vehicle in the radar beam and to computethe speed of the vehicle. Preferably, the digital computer meansincludes means for computing a mean frequency of the spectrum, means forcomputing a variance of the spectrum about the mean frequency, means forcomparing the variance of the spectrum to a threshold, and meansresponsive to the variance being less than the threshold for verifyingthat the vehicle has a speed indicated by the mean frequency.

BRIEF DESCRIPTION OF THE DRAWINGS

Other objects and advantages of the invention will become apparent uponreading the following detailed description and upon reference to thedrawings in which:

FIG. 1 is a plan view of a traffic monitoring system of the presentinvention being used on a roadway;

FIG. 2 is a pictorial view of the various components of the trafficmonitoring system used in FIG. 1;

FIG. 3 is a diagram showing how FIGS. 4A, 4B, 4C, and 4D should bearranged to form a single system diagram;

FIG. 4A is a schematic diagram of a radar transceiver used in thetraffic monitoring system;

FIG. 4B is a schematic diagram of a first central processing unit andrelated circuits in the traffic monitoring system;

FIG. 4C is a schematic diagram of a second central processing unit andrelated circuits in the traffic monitoring system;

FIG. 4D is a schematic diagram of a front view camera and relatedcircuits in the traffic monitoring system;

FIG. 5 is plan view of the radar transceiver and video camera in thetraffic monitoring system;

FIG. 6 is a front view of a horn antenna of the radar transceiver, asseen when a dielectric lens is removed from the front of the hornantenna;

FIG. 7 is a side view of one of the corrugated vertical side walls ofthe horn antenna;

FIG. 8 is a section view of the corrugated side wall along line 8--8 inFIG. 7;

FIG. 9 is a front view of the dielectric lens of the horn antenna;

FIG. 10 is a top view of the dielectric lens;

FIG. 11 is a rear view of the dielectric lens;

FIG. 12 is a section view of the dielectric lens along line 12 in FIG.11;

FIG. 13 is a front view of the screen of a video display used in thetraffic monitoring system of the present invention;

FIG. 14A is a graph of photo-flash intensity and shutter transmittanceas a function of time for the front-view camera in the trafficmonitoring system;

FIG. 14B is a graph of a shutter drive voltage as a function of timeduring the opening and closing of the shutter of the front-view camera;

FIG. 15 is a flowchart of a procedure for generating the shutter drivevoltage as shown in FIG. 14;

FIG. 16 is a flowchart of a procedure for asserting the specified levelof shutter drive voltage for a specified duration of time while sensinga "shutter open" stop switch;

FIG. 17 is a flowchart of a procedure for adaptively initializingshutter control parameters;

FIG. 18 is a flowchart of a subroutine for taking a picture;

FIG. 19 is a schematic diagram of circuitry for driving the shutter andadjusting the aperture of the front-view camera in the trafficmonitoring system;

FIG. 20 is a schematic diagram illustrating use of optical fibers forexposing alphanumeric characters on photographic film;

FIG. 21 is a schematic diagram of a camera using optical fibers forexposing alphanumeric characters on photographic film;

FIG. 22 is an end view of a spring-loaded slide assembly for urging theends of optical fibers into contact with photographic film;

FIG. 23 is a rear view of the slide assembly shown in FIG. 22;

FIG. 24 is an end view of the slide assembly of FIG. 22;

FIG. 25 shows modifications made to the housing of a film magazine forthe mounting of the slide assembly of FIG. 22;

FIG. 26 is a graph of an energy spectrum for a Doppler signal detectedin the absence of a vehicle in the radar beam;

FIG. 27 is a graph of an energy spectrum of a Doppler signal detectedwhen a vehicle is passing through the radar beam;

FIG. 28 is a graph of an energy spectrum of a Doppler signal that hasbeen garbled by more than one vehicle passing through the radar beam atthe same time; and

FIGS. 29 to 35 comprise a flowchart of a procedure for processing theenergy spectrum of the Doppler signal in order to detect the passing ofa vehicle through the radar beam, and to measure the speed of thevehicle and verify that the measured speed is accurate.

While the invention is susceptible to various modifications andalternative forms, a specific embodiment thereof has been shown by wayof example in the drawings and will be described in detail herein. Itshould be understood, however, that it is not intended to limit theinvention to the particular form disclosed, but, on the contrary, theintention is to cover all modifications, equivalents, and alternativesfalling within the scope of the invention as defined by the appendedclaims.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

Turning now to FIG. 1, there is shown a section of a roadway generallydesignated 50 where a traffic monitoring system in accordance with theinvention is being used to monitor traffic. Various components of thetraffic monitoring system, as will be further described below in FIG. 2,are mounted in, on, or around a surveillance vehicle 51 parked on a sideof the road 50.

For detecting the speed and position of traffic, the traffic monitoringsystem emits a radar beam 52 from the rear of the surveillance vehicle51. The radar beam 52 has a half-power beamwidth of 5° in the horizontalplane, and a 15° half-power beamwidth in a vertical plane or attitudedirection. Therefore, as projected from the rear of the surveillancevehicle 51, the radar beam 52 appears more like a "curtain" than a"spotlight." The center of the radar beam 52 has an angle of about221/20° with respect to the roadway 50 in the horizontal plane. Thisbeam geometry and orientation minimizes the possibility of there beingmore than one vehicle in the radar beam 52 at any particular time. The5° beamwidth in the horizontal direction minimizes the chance of havingmore than one car in the radar beam 52 at any given time. The 15°beamwidth in the vertical direction minimizes the precision required foraiming of the beam. For example, if the beamwidth were 5° in thevertical direction and if the source of the radar beam 52 were at aheight of five feet above the roadway 50, then it might be possible fora short approaching vehicle 53 to drive under the beam or just clip thebeam with the roof of the vehicle. A 15° beamwidth in the verticaldirection ensures that the beam 52 extends from the crown of the road 50to a point well above the surface of the road.

As shown in FIG. 1, the traffic monitoring system will detect the speedof a vehicle 53 that is approaching the rear of the surveillance vehicle51 when the vehicle 53 intersects the radar beam 52. There is, however,a possibility that when the approaching vehicle 53 intersects the radarbeam 52, a receding vehicle 54 traveling in an opposite direction willalso intersect the beam 52. The presence of both an approaching vehicle53 and a receding vehicle 54 in the beam 52 may cause interference thatwould prevent the traffic monitoring system from obtaining a precisereading of the speed of the approaching vehicle 53. In this case,however, the traffic monitoring system can detect the presence of thereceding vehicle 54 in the beam 52 and discard any measurement of speedfor the approaching vehicle 53.

Turning now to FIG. 2, there is shown a pictorial diagram of variouscomponents of the traffic monitoring system 60. The radar beam (52 inFIG. 1) is generated by a radar transceiver 61 mounted in a box 62 thatalso encloses a video camera 63 and a dual-processor digital computer66. The video camera 63 is aligned with the radar transceiver 61 so thatthe video camera has its optical axis aligned with the axis of the radarbeam. Moreover, the field of view of the video camera 63 is larger thanthe half-power beamwidth of the radar beam so that any objects which mayinterfere with the radar beam will be visible in the video picture.

The traffic monitoring system 60 includes a video monitor 64 for viewingthe video picture from the video camera 63, and a video cassetterecorder 65 for recording the video picture. Preferably, the videocassette recorder 64 is a conventional VHS format video cassetterecorder. In addition to recording the video picture, the left and rightaudio channels of the video cassette recorder 65 are used to record adual-channel audio signal detected by the radar transceiver 61.Therefore, any argument about possible radar interference can beresolved by playing back the video tape.

A particular frequency in the dual-channel audio signal from the radartransceiver 61 represents radar reflections from a surface having aparticular velocity component projected along a ray from the radartransceiver 61 to the reflecting surface. The audio frequency is theso-called "Doppler" shift between the frequency of the transmitted radarbeam and the frequency of the reflected beam. For a transmissionfrequency of 34.6 GHz, the audio frequency is given by a factor of 103Hz per mile per hour, multiplied by the projected velocity component ofthe reflecting surface in miles per hour. To determine the audiofrequency as a function of the speed of the approaching vehicle 53, onemust further multiply by a factor equal to the cosine of the anglebetween the direction of travel of the approaching vehicle 53 and a rayfrom the radar transceiver 61 to the approaching vehicle. This angle isapproximately the 221/2° angle between the roadway and the axis of theradar beam, having a cosine factor of 0.924.

The digital computer 66 analyzes the dual-channel audio signal from theradar transceiver 61 in order to detect the presence of the approachingvehicle (53 in FIG. 1) in the radar beam and to determine the speed ofthe approaching vehicle. The digital computer 66 is interfaced to anoperator via a laptop computer 67. A suitable laptop computer 67 is anIBM compatible 386 or 486 Grid Pad or Notebook Computer, having a 10"diagonal backlit display of 640×400 pixels. A program for the digitalcomputer 66 is down-loaded from a 31/2' high density floppy (1.44 Mbyte)diskette 68 received in a disc drive of the laptop computer 67. Thediskette 68, for example, is a "system diskette" that is automaticallyloaded and executed when laptop computer 67 is turned on when thediskette is in the disc drive. Execution of the program on this systemdiskette 88 causes the program for the digital computer 66 to bedownloaded from the diskette to the digital computer. The digitalcomputer 66 has some read-only memory that is programmed to receive thedown-loaded program from the laptop computer 67, and then to execute thedown-loaded program. The program on the diskette 68 is easily adapted tohardware changes or upgrades, or for different operating configurations,such as multi-lane verses single lane roads. Software upgrades are donein the field merely by changing the diskette 68. There is no need toreturn the digital computer 66 to the factory to change read-only memoryto do a software upgrade. Instead of distributing the software upgradeson disc, the software upgrades could be programmed on a static RAM card.In this case, the laptop computer 67 would need to have a slot forreceiving the static RAM card, but, in this case, the laptop computercould download the program from a static RAM memory card in a similarfashion as downloading the program from a diskette.

The operator may also enter information into a keyboard of the laptopcomputer 66 that is transmitted to the digital computer 66. Theoperator, for example, enters information identifying a new location ofthe surveillance vehicle (51 in FIG. 1) and the speed limit at the newlocation, prior to operating the system at the new location. Theoperator may also turn the radar on and off, and set the date and time,set the film frame numbers. The laptop computer also informs theoperator when the film is used up. Moreover, the laptop computer may logon a floppy diskette a record of all of the vehicle speeds that aredetected, regardless of whether the speeds exceed the speed limit.

If digital computer 66 finds that the speed of an approaching vehicle isexcessive, then the digital computer 66 activates a front-view camera 69to take a picture of the front of the approaching vehicle and the driverof the approaching vehicle, and also to record on film alphanumeric dataincluding the speed of the approaching vehicle, and the date, time,frame reference number, and location. It is desirable to obtain a veryclear picture of the approaching vehicle in order to read the frontlicense plate of the vehicle and to identify the driver. In case thefront license plate is missing or obscured, the vehicle monitoringsystem 60 may include a rear-view camera 70 that is activated some timeafter the front-view camera 69, depending on the speed of theapproaching vehicle, in an attempt to capture a picture of the rearlicense plate of the approaching vehicle after the approaching vehiclepasses the surveillance vehicle. The rear-view camera 70 need not haveas wide a field of view as the front-view camera 69, because the rearview camera is not intended to photograph the driver as well as the rearlicense plate.

The vehicle monitoring system 60 may include a speed display sign 71 fordisplaying the measured speed to the driver of an offending vehicle.Otherwise, the driver could claim that he or she was unfairly denied theopportunity to check the accuracy of his or her speedometer or toremember traffic or road conditions existing at the time of the speedmeasurement. The speed display sign 71, for example, is a pair of7-segment numeric indicators each displaying a digit approximately afoot high. The segments are yellow in color, and each segment has amagnetic latching-type electromagnetic actuator operated by the digitalcomputer system 66 to pivot the segment from a non-visible position to avisible position when the actuator receives a current pulse, and topivot the segment from the visible position to the non-visible positionwhen the actuator receives a current pulse of opposite polarity. At theoperator's discretion, the speed display sign can display the speed ofonly the vehicles that were photographed, or the speed of eachapproaching vehicle.

The components of the system 60 are placed or mounted at variouslocations in, on, or around the surveillance vehicle 51. The box 62including the radar transceiver 61, video camera 63, and digitalcomputer 66 is preferably mounted at the rear of the surveillancevehicle (51 in FIG. 1). The display sign 71 is preferably located adistance in front of the surveillance vehicle, at a location that willnot interfere with the radar beam. The video monitor 64, the videocassette recorder 65, and the laptop computer 67 are preferably mountedover the right-front passenger seat in the vehicle so as to beaccessible to the operator when the operator is sitting in the frontseat of the surveillance vehicle. The rear-view camera 70 is preferablymounted on the front of the surveillance vehicle.

Turning now to FIG. 4A (FIG. 3 illustrating the relationship between,and arrangement of, FIGS. 4A, 4B, 4C, and 4D to form a single systemdiagram), there is shown a schematic diagram of the circuits associatedwith the radar transceiver 61. The radar beam is generated by a Gunndiode 81 mounted in a cavity tuned to 34.6 gigahertz. The Gunn diode 81is powered by a regulated power supply 82. The microwave signal from theGunn diode 81 is fed through a circulator 83 to the throat of afan-shaped corrugated horn antenna 84. The circulator has three ports;one connected to the Gunn diode 81, one connected to the throat of thehorn antenna 84, and an internal port that is terminated with a matchingimpedance. Therefore, the circulator functions as a directional couplerthat allows microwave energy to pass from the Gunn diode 81 to thethroat of the horn antenna 84, but energy passing from the horn backinto the circulator is absorbed before reaching the Gunn diode 81. Thisabsorption of incoming energy prevents the incoming energy from pullingthe frequency of oscillation of the Gunn diode 81.

The microwave energy emitted by the horn antenna 84 is also focused bydielectric lens 85 mounted at the aperture of the horn 84. Thetransmitted power in the microwave beam 52 is about 2 milliwatts. Thehalf-power beamwidth is 5 degrees horizontal and 15 degrees vertical,and the secondary lobe attenuation is approximately 40 dB.

To reduce the amplitude of standing waves generated by reflections atthe surfaces of the lens 85, the lens surfaces are grooved with grooveshaving a depth of approximately one-quarter of a wavelength at themicrowave frequency. Grooving helps to minimize reflections by matchingthe impedance of free-space to the impedance of the dielectric materialof the lens 85.

Radar reflections pass through the lens 85 and back into the horn 84.The reflected microwaves are detected by a pair of detector diodes 86,87, and some of the energy of the reflected microwaves is absorbed bythe circulator 83. It is important that standing waves are suppressed sothat nulls do not occur at the locations of the detector diodes 86, 87.The detector diodes must be exposed to microwave energy from both thereflected microwaves and the transmitted microwaves passing from theGunn diode 81 to the lens 85. If a null occurs at the location of one ofthe detector diodes, than that detector diode will not be exposed tosufficient microwave energy passing from the Gunn diode 81 to the lens85 for efficient detection of reflected microwaves. Without the groovingof the dielectric lens 85, for example, nulls occur that may becomealigned with either one of the detector diodes because the nulls shiftin position with slight changes in the relative position of the lenscaused by thermal expansion, and with slight changes in the frequency ofoscillation of the Gunn diode 81.

The detector diodes 86, 87 are spaced by an odd multiple of one-eighthguide wavelengths in order to provide a pair of detected signals havinga quadrature phase relationship. The detector diodes 86, 87 are mountedin a short section of WR-28 waveguide having UG599 flanging. Althoughthe free-space wavelength of 34.6 GHz microwave radiation is 8.670 mm,the guide wavelength is 10.936 mm. The spacing (x) between the detectordiodes is preferably five-eighths of a guide wavelength, or about 6.835mm. However, the exact location and spacing of the detector diodes 86,87 should be adjusted somewhat due to second-order effects, such asphase shift due to power absorbed by the diodes, phase shift due to thedielectric constant of the diode housings, unequal amplitude detectedsignals due to unequal mixing powers, and standing waves created byreflections at the surfaces of the lens 85 and at the interface betweenthe throat of the horn 84 and the circulator 83.

The detected signals from the detector diodes 86, 87 are fed torespective intermediate frequency (I.F.) amplifiers and band passfilters 88, 89, which amplify and pass signals in the audio bandwidth.The IF amplifiers have a voltage gain of about 10,000, and have a flatfrequency response over a bandwidth from 1.4 kHz to 12 kHz. The audiosignals are fed to respective digital attenuators 90, 91 which normalizeand equalize the amplitudes of the detected signals. These digitalattenuators 90, 91 function similar to potentiometers, but permit thegain adjustment to be performed automatically by the digital computersystem (66 in FIG. 2) when the radar transceiver 61 is operated at atest range or in a test room having walls covered with microwaveabsorber.

The detected audio signals, denoted as "Channel A" and "Channel B,"include frequency components representing velocities ofmicrowave-reflecting surfaces. The frequency component in "Channel B"leads or lags the frequency component in "Channel A" depending onwhether the reflecting object is approaching or receding from the radartransceiver 61. Therefore, by a phase comparison or analysis of the"Channel A" and "Channel B" signals, it is possible to discriminatebetween approaching and receding vehicles, and also to determinequantitatively the effect of any interference between approaching andreceding vehicles. The "Channel A" and "Channel B" signals are recordedon the right and left audio inputs of the video cassette recorder (65 inFIG. 2).

As further shown in FIG. 4B, the "Channel A" and "Channel B" signals arealso fed to a first central processing unit (CPU) 101 of the digitalcomputer system (66 in FIG. 2). The first CPU 101, for example, is aMotorola part No. 68HC11. The "Channel A" and "Channel B" audio signalsare converted to digital form by respective analog-to-digital converters102, 103, before the audio signals are received and processed by thefirst CPU 101. The analog-to-digital converters are 8-bitsuccessive-approximation converters having a 5-volt input range and aconversion time of about 15 microseconds. The sampling rate is initiallyselected to be about 50 kHz, which would be sufficient for measuring thespeed of a vehicle traveling up to about 250 miles per hour. Forefficient use of memory, however, the sampling rate is decreased once avehicle is detected and its speed can be measured. The sampling rate isselected to be a particular one of five predetermined rates so thatthere will be about 4 to 5 samples per cycle at the frequency in the"Channel A" and "Channel B" signals. The sampling continues at the lowerrate as the vehicle passes through the radar beam.

The "Channel A" and "Channel B" signals are compared by a phase detector104 that indicates whether the phase of the "Channel B" signal leads orlags the phase of the "Channel A" signal. The phase detector 104includes two Schmitt triggers 92 and 93 that have hysteresis andsquare-up the "Channel A" and "Channel B" signals. The squared-upsignals are fed to two flip-flops 94, 95. The flip-flop 94 is clocked bythe output of the Schmitt trigger 92 and receives data from the outputof the Schmitt trigger 93. The flip-flop 95 is clocked by the output ofthe Schmitt trigger 93 and receives data from the output of the Schmitttrigger 94. For an approaching vehicle, the flip-flop 94 outputs a 0,and the flip-flop 95 outputs a 1. For a receding vehicle, the flip-flop94 outputs a 1, and the flip-flop 96 outputs a 0. The first CPU 101periodically samples the outputs of the flip-flops 94, 95 and decideswhether a vehicle is approaching or receding depending on whether amajority of the samples indicate that the vehicle is approaching orreceding.

The first CPU 101 is programmed to perform a kind of discrete Fourieranalysis of the "Channel A" and "Channel B" signals, and also isresponsive to the phase detector 104 to determine whether the "ChannelA" and "Channel B" signals indicate the velocity of an approachingvehicle. The first CPU 101 has a read-only memory 105 and a randomaccess memory 106. The read-only memory 105 has two kilobytes ofstorage, and the random access memory 106 has 48 kilobytes of storage.The read-only memory 105 is programmed with a kind of bootstrap-loaderprogram that receives a control program from the laptop computer (67 inFIG. 2), loads the control program into the random access memory 106,and then executes the control program in the random access memory.

The first CPU 101 periodically performs a discrete Fourier transformupon the "Channel A" and "Channel B" signals. The results of thisdiscrete Fourier transform are a series of spectral energy values for250 subdivisions within a range of from 15 miles per hour to 125 milesper hour. The results of the discrete Fourier transform are stored in ablock of 256 bytes of an intra-processor memory 107, for transfer to asecond central processing unit described below with respect to FIG. 4C.The six bytes in the block that do not store spectral energy valuesstore hand-shaking control information and a direction flag (DF)indicating whether a majority of the samples from the phase detector 104indicate that a vehicle was approaching or receding.

The discrete Fourier transform may employ numerical approximations inorder to enhance computational speed. One appropriate numericalapproximation is to approximate sine and cosine basis functions, foreach sampling instant, as having either a value of 1, 0, or -1,depending on whether the sine or cosine has a value of greater thanone-half (coded as a value of one), between one-half and minus one-half(coded as a value of zero), or less than one-half (coded as a value of-1). Each +1 or -1 coefficient for each basis function corresponds to anaddition operation or a subtraction operation, so that multiplicationoperations are not required for correlating the CHANNEL A or CHANNEL Bsignals with the basis functions. For an nth one of the 250subdivisions, n=0 to 249, the center speed of each speed interval isv=15+(nΔ), where Δ is a speed resolution of (110/249) miles per hour. Ata sampling time of t, the sine and cosine basis functions are sin(2πft)and cos(2πft), where f=(103 Hz/mph)(v). The approximated basis functionsshould also be balanced, if necessary, by changing the values near thethresholds of sine or cosine=1/2 and -1/2, so that each basis functionhas the same number of +1's and the same number of -1's.

A further approximation is to change a certain fraction of both the +1'sand -1's of each basis function to zero, to determine a set ofquasi-cosine and quasi-sine basis functions. The +1's and -1's to changeshould be selected to achieve a normalized result for the correlation ofthe signal samples with each basis function. The computationalrequirements are reduced in proportion to the fraction of the +1's and-1's that are changed to zero. The size of the discrete Fouriertransform program is also reduced, when the program instructions arecoded for maximum computational speed. For example, the maximum detectedspeed of 125 miles per hour has a corresponding frequency of (125mph)(103 Hz/mph)(cos(22.5°)), or about 11.9 kHz. Therefore, the samplingrate of 50 kHz (20 μsec.) is between 4 and 5 samples per cycle. Theminimum detected speed of 15 miles per hour has a correspondingfrequency of (15 mph)(103 Hz/mph) (cos(22.5°)), or about 1.43 Khz (700μsec). Assume that each basis function has about 20 +1's, 20 -1's. Eachspeed interval has two basis functions, including a quasi-cosine basisfunction and a quasi-sine basis function. Therefore, the correlationtime for a discrete Fourier transform for 250 speed values from one ofthe two channels, Channel A or Channel B, would be (250 speed values)(2basis functions)(40 machine operations), or a total of 20,000 machineoperations. For a 10 microsecond machine operation time, the correlationtime would be 2 milliseconds, or 100 sampling times at the 20microsecond sampling rate. A computer program using this discreteFourier transform technique is listed below. Each +1 or -1 coefficientfor each basis function is coded as an ADD or SUB instruction,respectively, listed in a subroutine corresponding to the basisfunction.

    ______________________________________    C*** DISCRETE FOURIER TRANSFORM PROGRAM    1       FOR J = 0 to 249    C*** Note: the following steps 2 to 21 could be replicated 250    C*** times with different call instruction destination    C*** specifiers each time to avoid the need for dynamically    C*** modifying the destination specifiers of the call    C*** instructions.    2       CLEAR R1    3       Set segment pointer register to SEG1    C*** SEG1 points to CHANNEL A input buffer    3       CALL ACMCOS.J    C*** NOTE CALL ENTRY POINT CHANGES WITH J    4       MULT R1, R1    5       LOAD R2, R1    6       CLEAR R1    7       CALL ACMSIN.J    C*** NOTE CALL ENTRY POINT CHANGES WITH J    8       MULT R1, R1    9       ADD R2, R1    10      CLEAR R1    11      Set segment pointer register to SEG2    C*** SEG2 points to CHANNEL B input buffer    12      CALL ACMCOS.J    C*** NOTE CALL ENTRY POINT CHANGES WITH J    13      MULT R1, R1    14      ADD R2, R1    15      CALL ACMSIN.J    C*** NOTE CALL ENTRY POINT CHANGES WITH J    16      MULT R1, R1    17      ADD R2, R1    18      Set segment pointer register to SEG3    C*** SEG3 points to Intra-Processor Memory    19      STORE M(J), R2    20      NEXT J    21      RETURN    C*** SUBROUTINE ACMCOS.0    22      ADD R1, M(0)    23      ADD R1, M(1)    24      ADD R1, M(3)    . . .    . . .    . . .    59      SUB R1, M(246)    60      SUB R1, M(247)    61      SUB R1, M(249)    62      RETURN    . . .    . . .    . . .    8,270   RETURN    C*** SUBROUTINE ACMCOS.249    8,271   ADD R1, M(0)    8,272   SUB R1, M(2)    8,273   ADD R1, M(4)    . . .    . . .    . . .    8,308   ADD R1, M(245)    8,309   SUB R1, M(247)    8,310   ADD R1, M(249)    8,311   RETURN    C*** SUBROUTINE ACMSIN.0    8,312   ADD R1, M(21)    8,313   ADD R1, M(22)    8,314   ADD R1, M(24)    . . .    . . .    . . .    8,349   SUB R1, M(245)    8,350   SUB R1, M(227)    8,351   SUB R1, M(228)    8,352   RETURN    . . .    . . .    . . .    16,541  RETURN    C*** SUBROUTINE ACMSIN.249    16,542  ADD R1, M(1)    16,543  SUB R1, M(3)    16,544  ADD R1, M(5)    . . .    . . .    . . .    16,579  SUB R1, M(244)    16,580  ADD R1, M(246)    16,581  SUB R1, M(248)    16,582  RETURN    ______________________________________

The spectral energy for each speed interval is obtained by summing thesquares of the correlations with the quasi-cosine and the quasi-sinebasis functions. Moreover, at each speed interval, the spectral energycomputed from CHANNEL A can be added to the spectral energy computedfrom CHANNEL B.

Processing time for the above discrete Fourier transform program can bereduced by reducing the desired number of frequency intervals. Forexample, if an initial transformation produces a frame of spectralenergy values indicating that a vehicle is traveling at 60 miles perhour, then the above program could be invoked to compute the spectralenergy for a more restricted speed range from 45 to 75 miles per hour,which would reduce the computational requirement by a factor of about 4.To restrict the speed range to about 45 to 75 miles per hour, thestatement in line 1 of the program could be changed to:

1 FOR J=68 to 136

Processing time for the above discrete Fourier transform program canalso be reduced by reducing the sampling rate. For example, if aninitial transformation produces a frame of spectral energy valuesindicating that a vehicle is traveling at 45 miles per hour, then thesampling rate could be reduced by one-half simply by loading each inputbuffer with every other sample from the respective CHANNEL A or CHANNELB analog-to-digital converter. Also, only one-half of the 255 spectralenergy values would need to be computed to obtain the same speedresolution or spacing between the spectral energy values. The speedvalues associated with each speed interval would be reduced by a factorof two. Therefore, to obtain spectral energy values for speed valuesranging from about 15 mph to 62 miles per hour when the sampling ratehas been reduced by a factor of two, the statement in line 1 of theprogram could be changed to:

FOR J=34 to 248 BY 2

It is possible to further reduce processor requirements by using apattern matching technique for transforming the Doppler signal to afrequency-domain signal, but such a pattern matching technique givesacceptable results only when the Doppler signal is a relatively puresinusoidal signal. Pattern matching can be done rather quickly withcomparison operations so long as the Doppler signal has approximately anormalized amplitude. Therefore a pattern matching technique should beused in conjunction with an automatic gain control. The automatic gaincontrol, for example, operates the digital gain adjustments 90 and 91 inFIG. 4A. The digital gain adjustments 90 and 91, for example, aremultiplying digital-to-analog converters, such as Analog Devices partNo. DAC-08 or DAC-10, manufactured and sold by Analog Devices, OneTechnology Way, Norwood, Mass. 02062-9106.

The automatic gain control can quickly compile a histogram of signallevels to determine a fairly good estimate of the amplitude of thedigitized Doppler signal. An eight-bit digitized Doppler signal, forexample, has 256 levels, and therefore a histogram can be compiled in anarray HISTO having 256 elements. The following routine, for example,estimates the amplitude, frequency, and dc offset of an eight-bitsinusoidal signal from at least 256 samples and at least one cycle ofthe sinusoidal signal, and adjusts a gain setting (GAIN) to obtain anormalized peak-to-peak amplitude. Upon returning from the routine, theestimated frequency is roughly proportional to the integer variableCYCLE and is more precisely CYCLE/NS times the sampling rate. Theestimate of the frequency could be used, for example, to select areduced sampling rate for subsequent sampling and processing of thesampled signal. The reduced sampling rate should be at least four timesthe estimate of the frequency.

    ______________________________________    C**** Clear Histogram Array    10   FOR J=0 TO 255    20   HISTO(J) ← 0    30   NEXT J    C**** Initialize sample counter and cycle counter    40   NS ← 0    50   CYCLE ← 0    C**** Wait for a level crossing in the Doppler signal    60   Get next digital sample DOP    70   POL1 ← DOP AND 80 Hexadecimal    80   Get next digital sample DOP    90   POL2 ← DOP AND 80 Hexadecimal    100  IF (POL1 = POL2) THEN GOTO 80    C**** Process Next Cycle    110  CYCLE = CYCLE + 1    120  NS ← NS + 1    150  HISTO(DOP) ← HISTO(DOP) + 1    C**** Loop until next level crossing    160  Get next digital sample DOP    190  POL2 ← DOP AND 80 Hexadecimal    200  IF (POL1 ≠ POL2) THEN GOTO 120    210  NS ← NS + 1    220  HISTO(DOP) ← HISTO(DOP) + 1    C**** Loop until next level crossing    230  Get next digital sample DOP    270  POL2 ← DOP AND 80 Hexadecimal    280  IF (POL1 = POL2) THEN GOTO 210    C**** Process additional cycles until NS ≧ 200    290  IF NS < 200 THEN GOTO 110    C**** Reject signal out of 1.4 kHz - 12 kHz bandwidth    C**** for 50 kHz sampling rate    300  IF CYCLE < 5 THEN GOTO 900    310  IF CYCLE > 49 THEN GOTO 900    C**** Find lower and upper peaks in the histogram    320  MAX ← 0    325  NEG ← 127    330  FOR J=0 TO 127    340  IF (HISTO(J) ≦ MAX) THEN GOTO 370    350  MAX ← HISTO (J)    360  NEG ← J    370  NEXT J    380  MAX ← 0    385  POS ← 128    390  FOR J=255 TO 128 BY -1    400  320 IF (HISTO(J) ≦ MAX) THEN GOTO 430    410  MAX ← HISTO (J)    420  POS ← J    430  NEXT J    C**** Compute peak-to-peak amplitude    440  AMPP ← NEG+POS    C**** Reject signal having amplitude less than threshold    450  IF AMPP < 16 THEN GOTO 900    C**** Compute offset    460  OFFSET ← (POS - NEG)/2    C**** Reject signal having offset greater than threshold    470  IF OFFSET > 8 THEN GOTO 900    C**** Adjust gain for a peak-to-peak amplitude of 200    480  GAIN ← GAIN * (200/AMPP)    C**** Return with error flag clear    490  ERROR ← 0    500  RETURN    C**** Return with error flag set    900  ERROR ← 1    920  RETURN    ______________________________________

A suitable pattern matching technique operates on sixty cycles of theDoppler signal. The sixty cycles are subdivided into twenty wavetriplets. Each of the wave triplets is matched by a point-by-pointcomparison to find a best matching one of 250 tabulated waveforms. Thepattern matching can be performed rather quickly because not all of thetabulated waveforms need be compared to any given sample. When a bestmatching waveform is found, a corresponding entry in a spectralhistogram table is incremented. After processing the twenty wavetriplets, the sum of the entries in the spectral histogram table is 20.A mean and variance could be computed from this spectral histogram, butdue to the fact that the sum of the entries is rather limited, thevariance can be deemed excessive if any two non-zero entries in thespectral histogram are spaced from each other by more than one tableentry. If there is only one non-zero entry, then the index of thatnon-zero entry indicates the mean. If there are two non-zero entries,then if they neighbor each other, the mean is indicated by the index ofthe larger entry; otherwise, the mean is indicated by the index of theentry in-between the non-zero entries. If there are three non-zeroentries, then the mean is indicated by the index of the middle entry.This pattern matching technique is illustrated by the following routine.

    __________________________________________________________________________    C**** Clear spectral histogram table    10 FOR J=0 to 249    20 SHIST(J) ← 0    30 NEXT J    Repeat for 20 triplets    40 FOR I=1 to 20    C**** Process the next three cycles of the signal    C****    C**** Buffer filing task    C**** Get NS samples in array SAMP for three cycles    C**** Wait for a level crossing in the signal    50 NS ← 0    60 Get next digital sample DOP    70 POL1 ← DOP AND 80 Hexadecimal    80 Get next digital sample DOP    90 POL2 ← DOP AND 80 Hexadecimal    100       IF (POL1 = POL2) THEN GOTO 80    C**** Process Next Cycle    FOR NCYCLE = 1 TO 3    120       NS ← NS + 1    150       SAMP(NS) ← DOP    C**** Loop until next level crossing    160       Get next digital sample DOP    190       POL2 ← DOP AND 80 Hexadecimal    200       IF (POL1 ≠ POL2) THEN GOTO 120    210       NS ← NS + 1    220       SAMP(NS) ← DOP    C**** Loop until next level crossing    230       Get next digital sample DOP    240       POL2 ← DOP AND 80 Hexadecimal    250       IF (POL1 = POL2) THEN GOTO 210    NEXT NCYCLE    C****    C**** Buffer dumping task    C**** Compute initial index from first sample value    260       J ← left shift SAMP(1) by one    C**** Follow gradient ascent or descent to find best match    270       FOR K = 2 to NS    C**** Note: sine tables are programmed with 00 Hexadecimal or    C**** FF Hexadecimal at an entry between each pair of    C**** neighboring regions of different gradient with respect to    C**** the table pointer J as the table pointer J is increased    C**** from 0 to 249 for each sample index K kept constant so    C**** that the maxima and minima can be identified, and so that    C**** a gradient ascent will always terminate at least at the    C**** maxima and a gradient descent will always terminate at    C**** least at the minima.    280       IF (TABLE(J, K) = FF Hexadecimal) THEN GOTO 505    290       IF (TABLE(J, K) = 00 Hexadecimal) THEN GOTO 505    320       L ← J    330       IF (J=249) THEN GOTO 335    332       IF (TABLE (J, K) is higher than TABLE(J+1,K)) THEN GOTO 430    334       GOTO 340    335       IF (TABLE (J, K) is higher than TABLE(J+1,K)) THEN GOTO 430    C**** Gradient of table region is positive with respect to J    340       IF (SAMP(K) is lower than TABLE(J, K)) THEN GOTO 390    350       FOR J = L to 249    360       IF (SAMP(K) is lower or same as TABLE(J, K)) THEN GOTO 510    370       NEXT J    380       GOTO 510    390       FOR J = L to 0 BY -1    400       IF (SAMP(K) is higher or same as TABLE(J, K)) THEN GOTO 510    410       NEXT J    420       GOTO 510    C**** Gradient of table region is negative with respect to J    430       IF (SAMP(K) is lower than TABLE(J, K)) THEN GOTO 480    440       FOR J = L to 0 BY -1    450       IF (SAMP(K) is lower or same as TABLE(J, K)) THEN GOTO 510    460       NEXT J    470       GOTO 510    480       FOR J = L to 249    490       IF (SAMP(K) is higher or same as TABLE(J, K)) THEN GOTO 510    500       NEXT J    505       NEXT K    C****    C**** Fill Histogram    510       SHIST(J) ← SHIST(J) +1    520       NEXT I    C****    C**** Reject spectrum if excessive variance and    C**** determine mean value    C****    C**** Find beginning of non-zero histogram entries    530       FOR J = 0 to 249    540       IF (SHIST(J) ≠ 0) THEN GOTO 560    550       NEXT J    C**** Reject histogram if any two non-zero entries are spaced    C**** from each other by more than one table entry.    560       IF (J > 246) THEN GOTO 650    570       L ← J +3    580       FOR K = L TO 249    590       IF (SHIST(K) ≠ 0) THEN GOTO 710    600       NEXT K    C**** Look at highest of group of three entries    620       IF (SHIST(J + 2) = 0) THEN GOTO 670    C**** Pick middle of three entries    630       J ← J + 1    640       GOTO 690    C**** Special case where mean is at high entry of the array    650       IF (J = 249) THEN GOTO 690    660       IF (J = 247) THEN GOTO 620    C**** Pick higher entry in group of two consecutive entries    670       IF (SHIST(J) ≧ SHIST(J+1)) THEN GOTO 690    680       J ← J+1    690       ERROR ← 0    700       RETURN    710       ERROR ← 1    720       RETURN    __________________________________________________________________________

At the expense of additional processing capability, a discrete Fouriertransform could be computed as a fast Fourier transform. The fastFourier transform technique requires multiplications, but the number ofcomputations is much less than the number of computations required forcorrelating with respective basis functions to achieve a comparableprecision. For transforming a series of 256 samples, for example, thefast Fourier transform technique would require about 1024 complexmultiplications and additions, and a comparable discrete Fouriertransform that correlates with respective basis functions would require65,536 complex multiplications and additions. Details regarding the fastFourier transform technique are disclosed in Lawrence R. Rabiner andBernard Gold, Theory and Application of Digital Signal Processing,Prentice-Hall, Inc., Englewood Cliffs, N.J., 1975, pages 356-437 and573-626, incorporated herein by reference. In particular, on page 367,Rabiner and Gold show a listing of a FORTRAN subroutine for adecimation-in-time, radix 2, in-place fast Fourier transform that couldbe used for practicing the present invention.

The intra-processor memory 107 is also used to transfer information fromthe second central processing unit to the first central processing unit101. The control program from the laptop computer (67 in FIG. 2), forexample, is transferred to the first central processing unit 101 via theintra-processor memory 107.

To ensure accurate speed measurements, the first CPU 101 may activate acalibration oscillator 108 to inject test signals into the I.F. strips88, 89 in FIG. 4A. The calibration oscillator 108 simulates thegeneration of detected signals by the detector diodes (86,87 in FIG.4A). The calibration oscillator can inject test signals having fourdifferent test frequencies, and having a proper quadrature phaserelationship to simulate a reflected signal from an approaching vehicle.The first test frequency is less than the minimum frequency to bedetected as the speed of a vehicle, and is below the lower cut-offfrequency of the I.F. band pass filters (88, 89). If the system isoperating properly, the system will not detect the presence of a vehiclein response to this first test frequency. The system verifies that thepresence of a vehicle is not detected in response to this first testfrequency. The second test frequency corresponds to a speed of about 42miles per hour, at about one-third of the range of speeds to bemeasured. The system verifies that the presence of a vehicle having aspeed of 42 miles per hour is detected in response to this second testfrequency. The third test frequency corresponds to a speed of about 90miles per hour, at about two-thirds of the range of speeds to bemeasured. The system verifies that the presence of a vehicle having aspeed of 90 miles per hour is detected in response to this third testfrequency. The fourth test frequency is greater than the maximumfrequency to be detected as the speed of a vehicle, and is above thecut-off frequency of the I.F. band pass filters (88, 89). If the systemis operating properly, the system will not detect the presence of avehicle in response to this fourth test frequency. The system verifiesthat the presence of a vehicle is not detected in response to thisfourth test frequency. The program down-loaded from the diskette (68 inFIG. 1) to the digital computer (66 in FIG. 2) includes a "self-test"routine for activating the calibration oscillator 108 in this fashion atthe beginning of execution of the down-loaded program. If proper systemoperation is not verified at each of the four test frequencies, then asystem malfunction is reported to the operator (via the laptop computer67 in FIG. 2 and via the diagnostic LED display 72 on the digitalcomputer 66), and the system is inhibited from further operation.

The first CPU 101 is also programmed to operate an audio annunciator109, the rear-view camera 70, the speed display sign 71, and thediagnostic LED display 72. Preferably the audio annunciator 109 is apermanent-magnet loudspeaker. The first CPU 101 operates the audioannunciator by selecting audio frequencies generated by a soundgenerator 110. The sound generator 110 has a digital divider generatingfour frequencies at about 250 Hz, 500 Hz, 1,000 Hz, and 2000 Hz. Thefirst CPU 101 transmits a four-bit code to the sound generator. Each ofthe four bits corresponds to one of the four frequencies, and when anyone or more of the bits is set, the frequencies corresponding to the setbits are passed to the audio annunciator. If all of the four bits of thefour-bit code are cleared, then the audio annunciator is silent. Bysetting and clearing selected bits of the four-bit code, the first CPU101 can make various sounds, such as ticks and warbles. For example, atick sound is made by selecting 1,000 Hz for ten milliseconds wheneveran approaching vehicle is detected passing through the radar beam. Awarbly sort of sound is made by switching between 250 Hz and 100 Hz at a2 Hz rate whenever an approaching vehicle is found to be exceeding thespeed limit.

The first CPU 101 is interfaced to the rear-view camera 70 throughrear-view camera control circuits 111. These rear-view camera controlcircuits can be similar to the control circuits shown below in FIG. 4Dthat control the front-view camera. The speed display sign 71 isinterfaced to the first CPU 101 by an RS-422 transceiver 112.

Turning now to FIG. 4C, there are shown circuits associated with asecond central processing unit 121. The second CPU 121 has a read-onlymemory 122 and a random access memory 123. The read-only memory 122 hastwo kilobytes of storage, and the random access memory 123 has 48kilobytes of storage. The read-only memory 122 is programmed with a kindof "bootstrap loader" for loading in the random-access memory 123 acontrol program received from the laptop computer 67, and alsotransferring a control program for the first CPU (101 in FIG. 4B) fromthe laptop computer 67 to the intra-processor memory (107 in FIG. 4B).

The second CPU 121 receives the frames of discrete Fourier spectralenergies from the intra-processor memory (107 in FIG. 4B). For eachframe, the second CPU computes a mean value of the speed for thespectral energy distribution, and a variance of the speed the spectralenergy distribution. For example, let E(n) represent the spectral energydistribution for a particular frame, where the index n ranges from n=0to n=249, for a total of N=250 speed intervals. The speed v_(n)=15+(nΔ), where Δ is a speed resolution of (110/249) miles per hour. Themean speed v is computed as: ##EQU1## The variance σ² is computed as:##EQU2## Alternatively, the variance σ² is computed as: ##EQU3## If thevariance exceeds a predetermined limit, then the frame is disregarded.This method has the advantage of eliminating incorrect speed estimatesthat could be caused, for example, by reflections from the tires of thevehicle. The reflection from the tires of the vehicle contains frequencycomponents indicating speeds ranging from zero to twice the speed of thevehicle, depending on whether the reflection is from the bottom of thetire or the top of the tire.

If frame of data has an acceptably small variance, then an even bettermeasurement of the speed can be computed by re-computing the mean speedafter removing from the spectral energy distribution those spectralenergy components for speed intervals having speed values more thanabout three standard deviations from the initially-computed mean speed.The re-computed mean speed uses the same equation as theinitially-computed speed, but the range of the limits of the summationsinclude only those values of the index n for which the absolute value ofthe difference of the speed v_(n) and the initially-computed mean speedV is less than or equal to three times the variance σ². This acts toweight the mean.

Based on a first frame of data having an acceptably small variance, thepresence of a vehicle in the radar beam is detected, and the speed ofthe vehicle is estimated. However, the estimated speed is furtherverified by following frames of data, depending on whether the followingframes also provide speed estimates (i.e., have acceptable standarddeviations) and the speed estimates of the following frames follow anacceptable trend (i.e., represent essentially the same speed or aslightly slower speed due to the cosine factor contributing to theDoppler shift). These verification techniques are discussed below withreference to FIGS. 29 to 35.

The second CPU 121 also controls the front-view camera by operating anumber of interface circuits that are shown and further described belowwith reference to FIG. 4D. The second central processing unit 121 isinterfaced to the laptop personal computer 67 through a RS-422 interface124.

The second central processing unit 121 generates alphanumeric data whichis combined with the video signal from the video camera 63. The videocamera 63, for example, has a six millimeter lens 125, and encodes colorinformation according to the standard NTSC format. The video signal isfed to a sync separator 126 which strips off vertical and horizontalsync pulses received by video timing circuits 127. The video timingcircuits include a digital time-base synchronized to the horizontalpulses, and row and column counters which are clocked by the digitaltime base and which address frame buffer locations in a video randomaccess memory (RAM) 128. The row counters are reset by the vertical syncpulses, and the column counters are reset by the horizontal sync pulses.

Each byte in the video RAM 128, for example, stores two nibbles of fourbits, and each nibble defines an attribute for a pixel. A nibbleaddressed by the concatenation of the row address and the column addressis received by a video overlay combiner 129. In this example, the videooverlay combiner 129 has four video CMOS analog switches controlled byrespective ones of the four bits of the addressed nibble. The outputs ofthe analog switches are summed to produce the video signal transmittedto the video monitor 64 and video cassette recorder 65. The first analogswitch has an input connected to receive the video output of the syncseparator 126. The second analog switch has an input connected toreceive an attenuated version of the video output of the sync separator126. The attenuated version of the video output of the sync separator126, for example, is provided by a potentiometer adjusted so that whenthe video output of the sync separator is at a "white" or fullsaturation level, the attenuated version is at a grey level. The thirdanalog switch has an input connected to a dc reference voltage level atthe "white" or full saturation level. The fourth analog switch has aninput connected to a dc reference voltage level at the "black" or zerosaturation level. Therefore, the four bits defining the attribute of apixel can be programmed for either video, graphics, or variouscombinations where the video is visible through the graphics or thegraphics are visible on top of the video. For example, areas of thepicture having video only would be programmed as (1000) for highcontrast, and (0100) for low contrast. Areas having graphics would beprogrammed as (0010) or (0001). Areas having video visible throughgraphics could be programmed as (1010) or (1001). Areas having graphicson top of video could be programmed as (0010) or (0100). The graphicsmay include alphanumeric characters created by writing a pixel patternfor each character into the video RAM.

As shown in the display screen of FIG. 13, the alphanumeric informationoverlaid on the video frame 130 includes the date, time, location andlocation in a row 131; a "view finder" 132, 133 corresponding to thefield of view of the front-view camera; a histogram of the speed samplesfor the car in a row 134; and a push-down stack 135 that shows the timeand speeds of the last 16 approaching vehicles detected by the system.The push-down stack 135 is useful in court for showing that an offendingdriver was not merely keeping up with traffic.

In FIG. 13, the speed of the vehicle 136 shown in the view finder 132,133 is being measured, and therefore the histogram in the row 134 hasonly two successive speed samples of 55 and 54 miles per hour.Additional speed samples will be added to the histogram as the vehicle136 passes through the radar beam. Once the vehicle 136 passescompletely through the radar beam, then a mean speed would be determinedfrom all of the speed samples in the histogram. This mean speed would bepushed on to the stack 135 along with the time of the speeddetermination so that this mean speed and time would occupy the firstposition 138 of the stack. Just prior to placing this new time and speedin the first position 137, the contents of the last entry 138 of thestack are discarded while the contents of the other entries are eachpushed down the stack by one position.

Returning now to FIG. 4C, the video RAM 128 could be a dual-port RAM toeliminate the need for synchronizing the loading of the video RAM withthe video sync signals. Dual-port RAM, however, is significantly moreexpensive than single-port RAM, and therefore it is preferred to use asingle-port video RAM. When a single-port video RAM is used, the secondCPU can be given priority over video RAM such that the second CPUaddress is asserted on the video RAM whenever the second CPU addressesthe video RAM, and otherwise the video RAM address is provided by thevideo timing circuits 127, and no contention will occur so long as thesecond CPU accesses the video RAM only during the vertical retraceinterval. The video timing circuits 127, for example, provide a verticalretrace interrupt pulse to the second CPU at the start of the verticalretrace interval, and the updating of the video RAM is performed by aninterrupt routine invoked upon interrupt of the second CPU by thevertical retrace interrupt pulse.

Turning now to FIG. 4D, there is shown a schematic diagram of circuitsassociated with the front-view camera 68. The front-view camera 68 has astepper motor (349 in FIG. 21) controlled by stepper motor controlcircuits 141 for advancing the film in the camera. One film-windingroller (348 in FIG. 21) in the camera is driven by the stepper motor,and the other film roller (346 in FIG. 21) has a detent switch (347 inFIG. 21) indicating revolutions of this other roller. When the computeris initialized, the computer operates the stepper motor to wind the filmto obtain two successive closures of the detent switch, and the computeralso counts the steps of the stepper motor between the detent switchclosures. This count indicates how much film is wound on each of therollers, so that the computer can compute how many step of the steppermotor are needed to advance the film by one frame. For each filmadvance, the computer also keeps track of the number of steps of thestepper motor between closures of the detent switch, because the numberof steps that it takes slowly goes down as the depth of the film getsbigger and bigger on the takeup roll, and therefore the number of stepsper frame needs to be re-computed as the number of steps changes betweendetent switch closures.

For example, suppose that the film rollers, when empty, have a circularsurface of radius r upon which the film is wound, and the film has athickness s. Suppose n₁ represents the number of turns of film wound onthe takeup roller (348 in FIG. 21) driven by the stepper motor (349 inFIG. 21), and n₂ represents the number of turns of film wound on theother roller (346 in FIG. 21) having the detent switch (347 in FIG. 21).The amount of film received by the other roller when it last made acomplete revolution between detent switch closures was then about2π(r+n₂ s-s), and the number of steps of the stepper motor required tosupply this amount of film is the number of steps of the stepper motorper revolution of the first roller multiplied by the fraction α=(r+n₂s-s)/(r+n₁ s-s). Therefore the fraction a is determined by the number ofsteps required to supply this amount of film divided by the fixed numberof steps per revolution of the first roller. Since α becomes known,there is established a first relation between n₂ and n₁, namely:

    n.sub.2 =αn.sub.1 +(α-1)(1/s)(r-s)

A second relation between n₁ and n₂ is established by the fact thatthere is a fixed and known length L of film in the camera, and thisamount is the sum of the amount of film on the first roller and theamount of film on the second roller. The total amount of film on thefirst roller is about 2π(n₁ r+n₁ (n₁ -1)s/2), and the amount of filmwound on the second roller is about 2π(n₂ r+n₂ (n₂ -1)s/2). Therefore n₁is a function of n₂ according to:

    L=2π(n.sub.1 r+n.sub.1 (n.sub.1 -1)s/2)+2π(n.sub.2 r+n.sub.2 (n.sub.2 -1)s/2)

and therefore

    n.sub.2 =(1/2)(1-2r/s+SQRT(((2r/s)-1).sup.2 -4(-L/sπ+(2/s) (n.sub.1 r)+n.sub.1 (n.sub.1 -1)))

Given specific values of r, s and L, the above two equations for n₂ canbe set equal to each other to solve for n₁ as a function of a, forexample by an iterative technique such as Newton's method.Alternatively, while winding a roll of film and recording the number ofsteps of the stepper motor between closures of the detent switch, thevalue of n₁ can be measured manually and tabulated as a function of thenumber of steps of the stepper motor between closures of the detentswitch. In any case, when n₁ is known, the number of steps X required toadvance a length D of film can be computed as X=KD/(2π(r+n₁ s-s)), whereK is the number of steps required for one revolution of the film take-uproller. Therefore it is possible to program the computer with a tablegiving the number of steps for one frame of film as a function of thenumber of steps counted between two successive closures of the detentswitch. Alternatively, the numbers in such a table can be fitted to apolynomial expression whereby a rather precise estimate of the number ofsteps for one frame of the film can be computed from the number of stepscounted between two successive closures of the detent switch.

Alphanumeric data is imprinted on the film as the film is advanced. Theimprinting signals are generated by eight light-emitting diodes turnedon and off by data imprinter control circuits 142. The data imprintercontrol circuits include, for each light-emitting diode, a drivertransistor and a 330 ohm current limiting resistor in series with thelight-emitting diode.

The front-view camera 69 has a lens assembly 143 including 150millimeter lens 73, an associated iris diaphragm 74 for setting thecamera aperture, and a shutter 75. The 150 mm lens 73 has a lens speedof 1/1000th second. The iris diaphragm 74 is controlled by a permanentmagnet motor 76, and the shutter 75 is controlled by a permanent-magnetmotor 76. The iris diaphragm 74 has a detent mechanism, providing threedetents per F-stop. An aperture control circuit 144 adjusts the apertureof the iris diaphragm 74, and a shutter control circuit 145 controls theshutter 78. When the motor 76 for the iris diaphragm 74 receives apositive pulse of current from the aperture control circuit 144, theiris diaphragm is advanced by one detent. The iris diaphragm 74 retractsby one detent when the motor 76 receives a pulse of negative currentfrom the aperture control circuit. The desired aperture setting, and thetime that the shutter 78 is open, is a predetermined function of ambientlight intensity as measured by a photo-cell or photo-resistor 146providing a signal to light meter circuits 147.

The shutter 75 is similar to the iris diaphragm 74, but the shutter doesnot have a detent mechanism. The shutter drive motor 77 includes a ringof permanent magnets, and a fixed coil. When the coil is energized withone polarity of current, the ring rotates in one direction and opens anumber of shutter blades, and when the coil is energized with anopposite polarity of current, the ring rotates in the opposite directionand closes the shutter blades. The moving parts of the shutter mechanismhave a very low mass. The blades, for example, are made of carbon-fibercomposite material, and the teflon is used on the bearing surfaces forreduced friction. The shutter control circuit 145 closes the shutter 78by firing about a 10 ampere pulse into the shutter drive motor 77,starting at an applied voltage of about 14.4 volts. Although the drivemotor is handling about 144 watts of power, the current pulse lasts onlyabout 300 microseconds. To achieve a shutter speed of 1/1000th of asecond, the shutter blades approach the speed of sound. Near the speedof sound, air flow around the shutter blades changes from laminar flowto turbulent flow, and the turbulent flow limits the speed of theshutter 78. This limitation on the speed of the shutter could be removedby evacuating the region around the shutter or filling the region aroundthe shutter with light gas such as helium. Before the shutter mechanismimpacts on a "shutter open" stop 78, a reverse current pulse is appliedto the shutter motor 77 to decelerate the shutter blades and reduce theimpact force to an acceptable level. Impact of the shutter on theshutter stop is sensed by a shutter stop switch 79. The control of theshutter motor is described further below with reference to FIGS. 14 to19.

The front-view camera has an internal switch (not shown) sensing whenthe film runs out, and a green light-emitting diode (not shown) that isvisible from the back of the film magazine that is lit when the systemis energized and there is film in the camera. The digital computer (66in FIG. 2) can sense the film-sensing switch and reports to theoperator, via the laptop computer 67, when the front-view camera runsout of film. The front-view camera also has a "shutter open" stop switchthat is closed when the shutter is in an open position.

The front-view camera 69 has an associated flash lamp 148 powered by aflash charge pump 149. The flash lamp 148 has a variable power output,with a maximum power output of 800 watt-seconds and a recycle time ofabout 1 second. The flash lamp 148 is fitted with a ruby-red filter toilluminate the approaching vehicle and driver. During the daytime, theflash can be used to enhance the image and reduce glare. At night theflash provides sufficient illumination of the scene for the photograph,without disrupting the vision of approaching drivers. The flash lamp istriggered by a signal transmitted over a fiber optic cable 150 fromflash status and control circuits 140. The flash charge pump 149 sends asignal over the fiber optic cable back to the flash status and controlcircuits 140 indicating whether a capacitor in the flash charge pump 149has been charged to a sufficiently high voltage for powering the flashlamp 148.

The front view camera 69 and the rear-view camera 70 could usecharge-coupled devices (CCDs) instead of film. A suitable CCD would havea 3048×2048 pixel array and an equivalent 1/1000 second electronicshutter. Electronic picture data from the CCD would be stored on an 8mmcassette data cartridge having a four gigabyte total capacity capable ofstoring a minimum of 2,000 picture frames per cartridge.

Turning now to FIG. 5, there is shown a scale drawing of the radartransceiver 61 mounted with the video camera 63, the digital computer66, and a voltage regulator 96 in the common housing 62. The hornantenna 84 is pyramidal in shape and has a rectangular base of 6.13" by2.34" and a length of 6.53" from the base of the pyramid to the planewhere the walls of the horn intersect a rectangular throat havinginternal dimensions of 0.28"×0.14" matching the internal dimensions ofWR 28 rectangular waveguide.

Turning now to FIG. 6, there is shown a front view of the horn antenna84 as viewed when a dielectric lens (165 in FIGS. 9 to 12) is removed.The internal dimensions at the front of the horn are 5.57×1.84". Thehorn antenna includes a metal top plate 151, a metal bottom plate 152, ametal left side plate 153, and a metal right side plate 154. The leftand right side plates are corrugated with a series of slots 0.05" inwidth, a quarter-wave (2.17 mm) deep, and having a spacing of 0.10"between the centers of neighboring slots. A quarter-wave deep slot 156extends around the periphery of the front of the horn. The front of thehorn also has six threaded holes, including holes 157, 158, 159 in thetop plate 151 and holes 160, 161, 162 in the bottom plate, for receivingsix machine screws (not shown) that fasten the dielectric lens (165 inFIGS. 9 to 11) to the front of the horn. The corrugation pattern isfurther shown in FIG. 7, and the slots 156 and 157 are seen in thecross-section of FIG. 8.

In operation, the horn antenna 84 is aligned the longest dimension ofits base aligned horizontally, to provide the 5 degree half-powerbeamwidth in the horizontal plane, and the 15 degree half-powerbeamwidth in the vertical plane. The throat of the horn 155 has its0.28" dimension aligned vertically and its 0.14" dimension alignedhorizontally, so that the radar beam is horizontally polarized.

Turning now to FIG. 9, there is shown a front view of the dielectriclens 165. The front of the lens is flat, and has a series of concentricquarter-wave deep grooves 166 functioning as an impedance matchingtransformer for matching the impedance of free space to the impedance ofthe dielectric lens. The centers of neighboring grooves are spaced by0.05", and width of the grooves is 0.03". The dielectric lens 165, forexample, is made of low-loss polystyrene. The length and width of thefront of the lens 165 are 6.13" by 2.34", matching the externaldimensions of the front of the horn (84 in FIG. 6).

As shown in the side view of FIG. 10, the lens 165 has a convex portion167 and a rectangular portion 168. The rectangular portion 168 abutsagainst the front of the horn (84 in FIG. 6), and the convex portion 167is received inside the horn. The convex portion 167 is a paraboloid thatis truncated by the inner pyramidal planes of the horn (84 in FIG. 6).The axis of the paraboloid is perpendicular to the front surface of thelens shown in FIG. 9, and the axis of the paraboloid becomes alignedwith the axis of the horn when the lens is inserted into the horn. Thethickness (y) of the convex portion 167 of the lens is 1.20 inches.

As more clearly seen in the rear view of FIG. 11, the parabolic surfaceof the convex portion 167 also has a series of concentric quarter-wavedeep grooves 166 functioning as an impedance matching transformer formatching the impedance of free space to the impedance of the dielectriclens. The centers of neighboring grooves are spaced by 0.05", and widthof the grooves is 0.03".

As shown in the magnified section view in FIG. 12, the grooves 168, 169have a rectangular cross-section. The shape of the cross-section is notcritical for impedance matching, and the grooves could be V-shaped ortapered instead of rectangular. Rectangular grooves are easier tomachine, whereas V-shaped grooves, or alternatively a waffle-ironpattern of pyramidal indentations, would be easier to mold. The lens165, for example, is machined from a circular disc of plastic 6.5 inchesin diameter and 1.5 inches in thickness. The disc is turned on anumerically-controlled lathe to machine the parabolic surface and tomachine the concentric groves. Then the disc is sawed to its rectangularshape, and finally milled to form the planar surfaces of the lens thatabut against the planar surfaces of the horn.

The grooves match the impedance of free space to the impedance of thedielectric of the dielectric lens either by forming a quarter-wavetransformer in the case of rectangular grooves, or a tapered transformerin the case of V-shaped grooves. A quarter-wave transformer should havean intermediate impedance that is the geometric mean of free space andthe impedance of the dielectric lens. Therefore, the grooved region ofthe lens should have an effective relative dielectric constant that isthe square root of the relative dielectric constant of the lens.Denoting the percentage of the grooved region that is free space by P,then the effective relative dielectric constant of the grooved region isε_(r) /(ε_(r) P+(1-P)) where ε_(r) is the relative dielectric constantof the dielectric of the lens. Therefore, the percentage of the groovedregion that is free space should be P=(√ε_(r) -1)/(ε_(r) -1) for optimumimpedance matching. In practice, the grooves can be somewhat wider thanthe optimum value, and wider grooves are easier to machine. In contrastto a quarter-wave transformer, a tapered transformer does not have arestriction on the intermediate impedance, and the tapered region mayhave a thickness larger than a quarter wavelength.

Instead of using grooves or indentations for matching the impedance ofthe lens to the impedance of free space, the parabolic surface and thefront surface of the dielectric lens 165 could be faced withquarter-wavelength thick sheets of dielectric having a relativedielectric constant that is the square root of the relative dielectricconstant of the dielectric of the lens. Grooves are preferred, however,because grooves can be formed easily in the lens when the lens ismachined or molded.

Turning now to FIG. 14A, there is shown a graph 185 of intensity of theflash lamp (148 in FIG. 2) as a function of time. Superimposed on theflash intensity 185 is a plot 186 in dashed representation of thetransmittance of the shutter for the situation where the transmittanceof the shutter has been approximately matched to the flash intensity forthe first two milliseconds of flash time. It has been found possible toachieve such a match using a camera having a Sonnar 1:4/150 mm. HFTlens, shutter and iris diaphragm assembly sold by Rollei FototechnicGmbH & Co. KG, P.O. Box 3245, D-3300 Braunschweig, Germany. However, toachieve such a matching, it was necessary to use a timed sequence ofpulsed currents to the shutter motor, in a sequence as shown in FIG.14A, and to activate the flash before activating the shutter. As shownin FIG. 14A, the flash is activated at t=0 mS, and the shutter isactivated at t=T_(s) >0. For the operation as shown in FIG. 14A, theshutter preferably is disposed in the "focal plane" of the camera lens(i.e., the plane perpendicular to the axis of the lens and passingthrough the focal point of the lens, at a location between the lens andthe film) so that the film receives approximately a uniform distributionof light when the shutter is moving between its closed position and itsopen position.

As shown in FIG. 14B, starting from the shutter activation time T_(s),the shutter drive motor is first pulsed positive with a voltage V_(s)for a length of time T₁, in order to accelerate the shutter towards anopen position. After the shutter drive motor is turned off for a lengthof time T₂, the shutter drive motor is pulsed with a negative voltage of-V_(s) for a length of time T₃. This causes the shutter to deceleratebefore hitting a stop at a "shutter open" position. Then the shutterdrive motor is turned off for a length of time T₄ during which theshutter is open. To close the shutter, the shutter drive motor is pulsedwith a negative voltage -V_(s) for a length of time T₅ to accelerate theshutter towards its closed position, and after the shutter drive motoris turned off for a length of time T₆, the shutter drive motor is pulsedpositive with a voltage V_(s) for a time T₇ in order to decelerate theshutter before the shutter reaches its fully closed position. Finally,the shutter drive motor is shut off for a length of time T₈ so that at atime t_(c), the shutter is stationary in its fully closed position. Theshutter, for example, is usually held in its fully closed position by aspring or by magnetic latching.

It is desirable for the shutter control parameters to be adaptivelyinitialized to take into account variable factors such as friction, andso that the shutter will impact the "shutter open" stop with no more,and not much less, than a certain maximum level of force. The shutterwill then bounce off the "shutter open" stop at high speed to achieve anoverall shutter speed of about 1/1000th of a second. A preferred methodof adaptive initialization opens and closes the shutter while monitoringthe closing of a shutter switch indicating when the shutter strikes the"shutter open" stop. The acceleration and deceleration times aregradually increased and adjusted to obtain a fast shutter speed and aminimal force of impact upon the "shutter open" stop. Then the shuttercontrol parameters are adjusted by a certain amount to obtain thecertain maximum level of force of impact upon the "shutter open" stop.

Turning now to FIG. 15, there is shown a flowchart of acomputer-implemented control procedure for opening and closing theshutter while monitoring a "shutter open" stop switch. A "shutter open"stop switch is provided in conventional cameras to activate a flash. Thecontrol procedure of FIG. 15 is executed by the second CPU (121 in FIG.4C) in the digital computer (66 in FIG. 2). In a first step 171, a flagis cleared. This flag becomes set when the shutter closes the "shutteropen" stop switch, as further described below with reference to FIG. 16.In the next step 172, the computer turns the shutter drive on positivefor T₁ time units. This causes the shutter to accelerate towards the"shutter open" position. Then, in step 173, the computer turns theshutter drive off for T₂ time units. At this time, the shutter travelswith its maximum velocity towards the "shutter open" stop. Then, in step174, the computer turns the shutter drive on negative for T₃ time units,in order to decelerate the shutter before the shutter strikes the"shutter open" stop. In step 175, the computer turns the shutter driveoff for T₄ time units. During this time, the shutter is in its openposition. In step 176, the computer turns the shutter drive on negativefor T₅ time units. This causes the shutter to accelerate towards the"shutter closed" position. In step 177, the computer turns the shutterdrive off for T₆ time units. At this time, the shutter travels with itsmaximum velocity towards the "shutter closed" position. In step 178, thecomputer turns the shutter drive on positive for T₇ time units. Thiscauses the shutter to decelerate, before reaching the "shutter closed"position. Finally, in step 179, the computer turns the shutter drive offfor T₈ time units, completing a shutter cycle. After step 179, theshutter is at a stationary "shutter closed" position.

Turning now to FIG. 16, there is shown a flowchart of acomputer-implemented control procedure for driving the shutter for apredetermined length of time T_(z) while inspecting the "shutter open"stop switch. This control procedure is executed by the second CPU (121in FIG. 4C) in the digital computer (66 in FIG. 2). In a first step 191,the computer transmits a selected control word to the shutter controlcircuits (145 in FIG. 4D). A first control word turns the shutter driveon positive, a second control word turns the shutter drive on negative,and a third control word turns the shutter drive off, as furtherdescribed below with reference to FIG. 19. Then, in step 192, thecomputer sets a timer with the predetermined length of time T_(z). Then,the computer waits for the predetermined length of time T_(z) to elapsewhile monitoring the "shutter open" stop switch.

As shown in FIG. 16, the computer waits for the predetermined length oftime T_(z) to elapse by executing a program loop for T_(z) number oftimes. In step 193, the computer waits for a predetermined amount oftime so that one cycle through the loop takes one time unit. Then, instep 194, the computer reads the "shutter open" stop switch. In step195, execution branches depending on whether the "shutter open" stopswitch is closed. If the switch is closed, then in step 196, the flag isset and execution returns to step 198 . Otherwise, in step 197, a"no-op" instruction is executed so that step 197 has the same delay asstep 196. In step 198, the value of the timer is decremented by one. Instep 199, execution loops back to step 193 unless the timer has a valueless than or equal to zero. When the timer reaches the value of zero,execution returns.

Steps 193 to 199 preferably are performed on a priority interrupt andtimed-interrupt basis so that the computer may perform other functionsover the interval of T_(z) time units. In particular, the first CPU (101in FIG. 4C) and the second CPU (121 in FIG. 4C) each has a multi-taskoperating system that schedules various tasks at different times,including tasks that may be suspended until a scheduled time or thatbegin at a scheduled time. A currently executing task is interrupted atthe next scheduled time to resume one of the suspended tasks or to beginone of the new tasks. The operation of such multi-task operating systemis well-know. Multi-tasking is described, for example, in James Martin,Programming Real Time Computer Systems, Prentice-Hall, Inc., EnglewoodCliffs, N.J., 1965, incorporated herein by reference. In its mostelementary form, such a multi-tasking operating system has an interruptstack for handling interrupts, and a means for recording the status ofthe tasks that have been suspended until a scheduled time occurs andtasks that are to begin when a scheduled time occurs. In the generalcase, it is possible that more than one task may be scheduled to beresumed or begun at the same time, so that a queue, ordered byactivation time and priority, is typically used for recording the statusof the suspended tasks and the tasks that are to begin at a scheduledtime. The multi-tasking operating system has a programmable interrupttimer that generates an interrupt to the operating system when aprogrammed time occurs. In response to the timer interrupt, theoperating system removes the task at the head of the queue; this task isthe next task to be executed. If the queue does not become empty, theoperating system obtains the activation time for the new task at thehead of the queue, and loads the interrupt timer with this newactivation time. Then the operating system manipulates the interruptstack so that upon returning from the current interrupt to the operatingsystem, execution will pass to the next task to be executed. Preferablythere is always a low-priority "background" task to be executed. Forexample, the low-priority background task is a program loop thatcomputes a checksum of all fixed-program memory, and that reports anerror code and shuts down the system upon finding that the computedchecksum does not match the sum that should result in absence of aprogram memory error.

For programming steps 193 to 199 in a multi-task environment, the flagis an interrupt enable flag for a hardware interrupt activated by the"shutter open" stop switch. This hardware interrupt has an interruptroutine that merely clears the interrupt enable flag. Moreover, thetimer that is set in step 192 is the timing mechanism for themulti-tasking operating system. In particular, the time T_(z) can beadded to the current time to compute the activation time for the shutterdrive control task, and then the shutter drive control task suspendsitself by a call to the operating system and passing the activation timeas a parameter to the operating system. The operating system responds byplacing the shutter drive task on the queue as a suspended task havingthe specified activation time, removing context information of theshutter drive task from the interrupt stack (e.g., the program addressfor resuming the shutter drive task) and linking it to the shutter drivetask on the queue, and then returning execution not to the suspendedshutter drive control task but to the task that was last interrupted.The linked context information is thereby saved so that the operatingsystem will return control to the suspended shutter drive task once thepredetermined length of time T_(z) has elapsed, when a hardware timerinterrupt invokes the operating system.

Turning now to FIG. 17, there is shown a program for adaptivelyinitializing the shutter timing parameters T₁ to T₈. In step 211, theshutter timing parameters T₁ to T₈ are set to predetermined initialvalues. For example, the parameters T₁, T₃, T₅, and T₇ could be set tozero, and the other parameters could be set to predetermined operatingvalues. In this case, the procedure of FIG. 17 would adaptivelydetermine the values of T₃ and T₇ for specified maximum values of T₁ andT₅. In addition, the procedure of FIG. 17 determines the desired valueswhile repetitively opening and closing the shutter without ever causingthe shutter to impact the "shutter open" stop with excessive force.

In step 212, the shutter is opened and closed by calling the "shuttercycle" procedure of FIG. 15. Then, in step 213, the computer testswhether the flag has been set. If so, then there was sufficientacceleration time in the cycle for the shutter to reach the shutter stop(78 in FIG. 4D) and close the shutter stop switch (79 in FIG. 4D), andtherefore the deceleration time (T₃ and T₇) can be increased. Thedeceleration time T₇ could always be equal to the deceleration time T₃,or if the shutter is always biased towards the shutter closed positionby a spring, then the deceleration time T₇ could be slightly larger thanthe deceleration time T₃ by a difference to take into account theimpulse imparted to the shutter by the spring over a cycle of openingand closing of the shutter. In step 214, the deceleration time T₃ iscompared to a predetermined maximum limit T3MAX to determine whether itis permissible to increase the deceleration time. If the decelerationtime has reached the maximum limit, then execution returns to an errorreporting routine. Otherwise, execution branches to step 215 where thedeceleration times T₃ and T₇ are increased, and execution loops back tostep 212.

If in step 213, the flag was not set, then the "shutter open" stop wasnot reached during the cycle of opening and closing the shutter in step212. In this case, execution continues to step 216 to determine whetherit is permissible to increase the acceleration times T₁ and T₅. So longas the acceleration time T₁ is not greater or equal to the predeterminedmaximum value T1MAX, then execution branches to step 217 to increase theacceleration times T₁ and T₅. The acceleration time T₅ could always beequal to the acceleration time T₁, or if the shutter is biased towardsthe shutter closed position by a spring, then the acceleration time T₇could be slightly smaller than the acceleration time T₁ by a differenceto take into account the impulse imparted to the shutter by the springover a cycle of opening and closing of the shutter. Execution then loopsback to step 212.

If the acceleration time T₁ was found to be greater or equal to themaximum value of T1MAX in step 216, execution branches to step 218. Oncestep 218 has been reached, then the deceleration time T₃ should not beless than a predetermined maximum value T3MIN. For example, theacceleration time T₃ would be less than the predetermined minimum valueT3MIN if the shutter were jammed or if the shutter stop switch wereinoperative so that the shutter stop switch would never become closed.Therefore, if in step 218 the deceleration time T₃ is found to be lessthan the minimum value T3MIN, execution branches to an error reportingroutine. Otherwise, execution branches from step 218 to step 219 wherethe acceleration time T₁ is increased by a predetermined amount and thedeceleration time T₃ is decreased by the same predetermined amount sothat the shutter will impact the "shutter open" stop with a certainmaximum level of force. Then, in step 220, the film is advanced so thata fresh frame of film is ready to be exposed the next time that theshutter is opened. After step 220, execution returns.

Turning now to FIG. 18, there is shown a subroutine for taking apicture. In a first step 231, the shutter is opened and closed bycalling the "shutter cycle" subroutine of FIG. 15. Then in step 233, thefilm is advanced by one frame. After step 232, execution. returns.

Turning now to FIG. 19, there is shown a schematic diagram of circuitsfor driving the aperture adjusting motor 251 and the shutter motor 252.Power for driving these motors is stored in 2200 microfarad electrolyticcapacitors 253, 254. The electrolytic capacitor 253 is charged to about14.4 volts from a supply voltage +Vd of about 15 volts through areverse-current blocking diode 250 and resistors 255, 256 and 257. Theelectrolytic capacitor 254 is also charged to about 14.4 volts from thesupply voltage +Vd through the diode 250 and resistors 258 and 259. Theresistors 255 and 258, for example, each have a value of 240 ohms, andthe resistors 256, 257 and 259 each have a value of 1K ohms. A signalVSENSE1 senses the state of charge of the capacitor 253 through avoltage divider including a 47K ohm resistor 268 and a 10K ohm resistor267. A signal VSENSE2 senses the state of charge of the capacitor 254through a similar voltage divider including a 47K ohm resistor 269 and a10K ohm resistor 270.

For pulsing the aperture motor 251, a first pair of power P and NMOSFETS 261, 262 are connected in series with the capacitor 253. Thedrain of the FET 261 is connected to the positive terminal of thecapacitor 253, and the source of the FET 261 is connected to the drainof the FET 262 and a line to the aperture motor. The source of the FET262 is connected to ground. For pulsing the shutter motor, a second pairof power P and N MOSFETS 263, 264 are also connected in series with thecapacitor 253. The drain of the FET 263 is connected to the positiveterminal of the capacitor 253, and the source of the FET 263 isconnected to the drain of the FET 264 and to a line to the shutter motor252. The source of the FET 264 is connected to ground.

A third pair of power P and N MOSFETS 265, 266 are connected in serieswith the capacitor 254 in order to pulse either the aperture motor 251or the shutter motor 252. The FET 265 has a drain connected to thepositive terminal of the capacitor 254, and a source connected to thedrain of the FET 266 and to a line of the aperture motor 251 and to aline of the shutter motor 252. The gate of each of the FETS 261, 262,263, 264, 265, and 266 is connected to the output of a respective one ofsix inverters 271, 272, 273, 274, 275, and 276. The inverters 271 to 276are, for example, part No. 74LS06, and the output of each of theinverters is also connected to a respective 1K ohm pull-up resistor 277,278, 279, 280, 281, and 282. The resistors 256, 257, 259, and 277 to282, for example, are all contained in a single in-line resistor packhaving one common terminal.

The inverters 271 to 276 each have an input connected to a respectiveone of six outputs Q₀ to Q₅ of combinational logic 283, which isprovided, for example, by a programmed array logic integrated circuit,part No. PAL 16L8. The combinational logic 283 decodes control words forvarious motor functions. In particular, the logic 283 accepts a numberof bits I₂, I₁, I₀ forming a control word selected for either pulsingthe aperture motor on positive, pulsing the aperture motor on negative,pulsing the shutter motor on positive, pulsing the shutter motor onnegative, turning both motors off, or discharging the capacitors 253 and254 without pulsing either of the motors.

The combinational logic 283 also accepts a bit I₃ that is a system resetsignal, asserted low, from a voltage comparator 284, such as a part No.34064. The voltage comparator asserts the system reset signal when thevoltage of a nominally +5 volt supply drops below 4.7 volts. Thecombinational logic 283 is responsive to this system reset signal toclamp the capacitors 253, 254 to ground, so that the aperture motor 252and shutter motor 252 are not activated by transients during power-up orpower-down when the second CPU is inoperative and being reset by thesystem reset signal. Suitable combinational logic is specified by thetruth-table shown below:

    ______________________________________    I.sub.3        I.sub.2              I.sub.1                    I.sub.0                        Q.sub.5                            Q.sub.4                                Q.sub.3                                    Q.sub.2                                        Q.sub.1                                            Q.sub.0                                                Function    ______________________________________    0   0     0     0   0   0   1   0   1   1   Aperture Motor Positive    0   0     0     1   1   1   1   0   0   0   Aperture Motor Negative    0   0     1     0   0   0   1   1   1   0   Shutter Motor Positive    0   0     1     1   1   1   0   0   1   0   Shutter Motor Negative    0   1     0     0   1   0   1   0   1   0   Motors Off    0   1     0     1   0   1   1   0   1   0   Discharge Capacitor 254    0   1     1     0   1   0   0   1   0   1   Discharge Capacitor 253    0   1     1     1   0   1   0   1   0   1   Clamp Capacitors    1   d     d     d   0   1   0   1   0   1   Clamp Capacitors    ______________________________________     (Note: "d" in the table means "don't care")

The power FETs 261, 262, 263, 264, 265, 266 have sufficientimpulse-power handling capability that both of the FETs in any of thethree pairs can be turned on simultaneously to quickly discharge thecapacitor to which they are connected without harming the FETs. The FETshave significant series "on" resistance compared to the resistance ofthe winding of the shutter motor 252, because it would be relativelycostly to lower this "on" resistance, for example, by a connecting anumber of FETs in parallel to effectively lower the "on" resistance. Theseries resistance of the electrolytic capacitors 253, 254 is alsosignificant in comparison to the resistance of the winding of theshutter motor, when conventional electrolytic capacitors are used. Itwould be possible to use special "low series resistance" electrolyticcapacitors so that the series resistance would not be significant, butsuch "low series resistance" capacitors are relatively expensive.

The capacitor discharge function and the capacitor clamp function couldbe used in a power-down routine executed just before power shut-down toinsure that the capacitors 253, 254 are discharged before they areclamped. For example, the capacitor 254 could be discharged for 10milliseconds with a control word of "101", and then FETS could all beshut off for a microsecond with a control word of "100", and then thecapacitor 253 could be discharged for 5 milliseconds with a control wordof "110", and finally the capacitors would be clamped with a controlword of "111".

Turning now to FIG. 20, there is shown a method of imprintingalphanumeric characters on photographic film. Such imprinting has beendone by using a lens to focusing a image from an alphanumeric displayonto the film. Such imprinting has also been done by a linear array oflight-emitting diodes that are mounted up against the film. As shown inFIG. 20, however, it is preferable to imprint an alphanumeric character301 on photographic film 302 by pressing a linear array of the ends ofoptical fibers 303 against the photographic film, and selectivelyexciting the optical fibers with light from an array 360 oflight-emitting diodes 307'. This preferred method has the advantage ofintroducing less stray light onto areas of the film where imprinting isnot desired, because the film is brought into intimate contact with theends of the optical fibers, and the light is contained by the fibersexcept at the ends of the fibers.

It is also possible to imprint very small alphanumeric characters on thefilm, because the optical fibers may have a very small diameter. Asshown in FIG. 20, for example, a linear array of eight fibers is made byaligning the fibers in a slot milled into a metal finger 304. Fibers assmall as 10 mills in diameter, for example, have been easily aligned byhand into a slot having a width of 80 mills. The fibers are then gluedinto the slot.

As further shown in FIG. 20, the opposite ends of each of the opticalfibers is aligned with a respective light-emitting diode in an array306. The diodes 307', for example, are arranged in a linear array on aprinted circuit board 307. A rectangular plastic cap 305 is molded ordrilled to fit over the linear array of diodes, and a small hole isdrilled through the plastic cap 305 for insertion of the opposite end ofeach of the fibers for alignment with the light-emitting end of arespective one of the diodes in the array 306. The fibers having beeninserted into the plastic cap are glued to the plastic cap, and theplastic cap is then glued or otherwise fastened to the printed circuitboard 307. The light-emitting diodes are selectively activated bycurrents in eight wires of a ribbon cable 308. A ninth wire 309 in theribbon cable provides a common return for the current.

In operation, the eight diodes are selectively actuated by a byte readfrom a character generator ROM or from a character generator table inmemory programmed with the pixel column patterns of the characters. Anew byte is read from the character generator ROM or from the generatortable each time a stepper motor 349 advances the film by an increment ofdistance that is on the same order as the diameter of the opticalfibers. The stepper motor 349 can be advanced by a different number ofsteps to obtain the same increment of distance, depending on the amountof film on the film winding roller 348 driven by the stepper motor 349,and as determined by counting steps between closures of the detentswitch 347, as described above. The character generator ROM or charactergenerator table is addressed or indexed by the ASCII code of thecharacter to be imprinted and is also addressed or indexed by amodulo-counter or modulo-count that is incremented for each increment ofdistance by the stepper motor and that counts the number of columns ofpixels for each character. Once an entire character has been imprintedon the film, the character generator ROM or character generator tablecan be addressed or indexed with the ASCII code of a next character tobe imprinted on the film. The character generator ROM or charactergenerator table is programmed to represent a matrix having seven rowsand five columns of pixels. The optical fiber array 303 has eight fibersinstead of seven so that the alphanumeric characters can be selectivelyunderlined by light conveyed through the bottom-most fiber.

As shown in FIG. 21, the metal finger 304 is the end portion of aspring-loaded slide assembly 310 that is mounted in a front housing 344'of a camera 350 in a corner area bordering a rectangular aperture 300that permits light from the camera lens and shutter assembly (not shown)to strike the film 302 in a magazine 311. The film magazine, forexample, is from a "school camera" that holds about 100 feet of 35 mm×45mm sprocketless type C-41 color or black & white film (about 650exposures), and that is commonly used in schools to take pictures forstudent identification cards. The finger 304 is mounted in the slide andspring-loaded so that the film engages the end of the finger when thefilm is flattened by a spring-loaded pressure-plate 312. A solenoid 313can be energized to retract the pressure-plate 312 when re-winding thefilm at relatively high speed. It has also been found that when usingthis kind of camera, a corner area of the aperture can be slightlyenlarged by milling, drilling or filing so that the finger 304 willextend into the enlarged area (341 in FIG. 25) of the rectangularaperture 300 and contact a border area of the film that is not normallyexposed through the aperture. Therefore, it is possible to annotateframes of 35 mm film without imprinting over otherwise exposed areas ofthe picture, and without reducing the area of the film available forrecording a picture.

Turning now to FIGS. 22 to 24, there are shown various views of thespring-loaded slide assembly 310. The metal finger 304 is an extensionof a metal piece 321 mounted for sliding in a slot milled in a metal bar323. A compression spring 325 presses the metal finger outward, but themetal finger is prevented from escaping the slot by the end of a screw326 that extends into an enlarged hole in the metal piece 321. Thereforethe finger is free to slide with respect to the metal bar 323 by adistance equal to the amount by which the diameter of the enlarged holein the metal piece 321 is greater than the diameter of the end of thescrew 326. The screw 326 is threadingly engaged to the metal bar 323 andalso serves to mount the metal bar 323 to a mounting bracket 324. Asecond screw 327 threadingly engages a metal end piece 322 that is alsoengaged in the slot in the metal bar 323. The spring 325 is entrappedbetween the metal end piece 322 and the metal piece 326. The secondscrew 327 also serves to mount the metal bar 323 to the mounting bracket324. The mounting bracket 324 mounts the slide assembly 310 to thecamera magazine, as shown in FIG. 21.

The "footprint" of the slide assembly 310 is further illustrated byphantom lines in FIG. 25. The rectangular aperture 300 has been enlargedat the lower-right hand corner to provide an area 341 for receiving themetal finger (304 in FIG. 24). Also, two holes 342, 243 have beendrilled and tapped into a front housing 344' of the magazine 311 forreceiving screws (344, 345) that secure the mounting bracket (324 inFIGS. 22 to 24) to the housing of the film magazine 311. It should alsobe apparent that the mounting bracket (324 in FIG. 22) could be modifiedfor mounting the slide assembly in a front housing that would be smallerthan the front housing 344' shown in FIG. 25; for example, if space wererestricted, then the mounting bracket 324 could be fastened to the fronthousing 344' instead of the housing of the film magazine 311, or themetal bar 323 of the slide assembly could be fastened by screws directlyto the front housing 344'.

Turning now to FIG. 26, there is shown a graph of the energy spectrumfor a Doppler signal (Channel A or Channel B in FIG. 4A) in the absenceof a vehicle passing through the radar beam (52 in FIG. 1). The spectrum370 is essentially flat and has a low level, because it is due tobackground noise from the electronic circuits. Therefore, the presenceor absence of a vehicle passing through the radar beam can be detectedby comparing the total energy of the energy spectrum 370 to a thresholdTH2. For the case where the energy spectrum 370 is resolved for 250different speed intervals, then the threshold level has a value ofTH2/250 in comparison to the energy from any single level, as shown inFIG. 26. The presence or absence of a single vehicle in the radar beamcan also be detected from the variance of the energy spectrum. When theenergy spectrum is flat, the square root of the variance σ² is arelatively large fraction of the total width of the spectrum.

Turning now to FIG. 27, there is shown a graph of the energy spectrumfor a Doppler signal when a single vehicle passing through the radarbeam. The total signal energy is in excess of the threshold TH2. Thespectrum 380 has a single sharp peak 381 at the velocity of the vehicle,which is approximately the mean velocity v of the spectrum 380. Thewidth of the peak is about twice the square root of the variance σ².

Turning now to FIG. 28, there is shown a graph of the energy spectrum390 for a Doppler signal when two vehicles are passing through the radarbeam (52 in FIG. 1). The total signal energy is in excess of thethreshold TH2. There are two peaks 391, 392 at different velocities,corresponding to the different velocities of the two vehicles. In thiscase the mean velocity v is not representative of the velocity of eitherof the two vehicles. The variance σ² is greater than the variance inFIG. 27 for the case of a single vehicle passing through the radar beam.Moreover, the two peaks 391, 392 may interfere destructively, causing anull 393 between them, and causing the peak 391 to have a maximum slope(MAXDEDV) alongside the null 393 that is greater than the slope of thepeak 381 in FIG. 27 for the case of a single vehicle passing through theradar beam.

FIGS. 26, 27 and 28 illustrate that the presence or absence of a singlevehicle in the radar beam, and the velocity of the vehicle, can bedetermined from statistics such as the mean and variance of the spectrumof the Doppler signal. So that an innocent driver will not ever becharged with a speeding violation, it is important to determine whetheror not a velocity measurement is accurate. Therefore, a velocitymeasurement must pass a number of tests before it is deemed to beaccurate.

Shown in FIGS. 29 to 35 is a specific example of a control procedurethat is executed by the second CPU (121 in FIG. 4C) to obtain and verifya speed measurement of a vehicle passing through the radar beam. Ingeneral, this procedure inspects a series of frames of energy spectrumfrom the first CPU. A first loop in this procedure, starting at a pointcalled QCENTRY, determines whether or not a frame of energy spectrumindicates that a vehicle has entered the radar beam. A second loop inthis procedure, starting at a point called QCINTERMED, inspectsfollowing frames of energy spectra as the vehicle passes through theradar beam, and determines when the vehicle exits the radar beam. Oncethe vehicle exits the radar beam, at a point in the procedure calledQCFINAL, statistics are computed from respective speed measurements fromthe frames of spectra inspected when the vehicle was passing through theradar beam, and these statistics are used to further verify the accuracyof the speed measurement of the vehicle. The basic strategy is that itis better to miss some speeders rather than tag somebody for speedingwho's not, and this strategy is followed by requiring a large number ofconditions to be satisfied before the measured speed is verified.

Throughout the procedure, the speed measurement can be voided for anynumber of reasons. When the speed measurement is voided, the reason isindicated by a numerical code stored in a memory location called"VOIDNO". In the specific procedure of FIGS. 29 to 35, "VOIDNO" isinitially set to zero, and if no reason is found to void a speedmeasurement, "VOIDNO" will remain zero. Otherwise, "VOIDNO" is set to anon-zero value as indicated in the following table:

    ______________________________________    Void Number             Reason    ______________________________________    1        2's complement arithmetic overflow in QCENTRY    2        MAXDEDV exceeds TH3 in QCENTRY    3        VAR exceeds TH4 in QCENTRY    4        MEANV is out of range in QCENTRY    5        Camera out of film    6        Film has not yet been advanced    7        Too many frames have signal loss (i.e., dropouts)    8        Too many frames have excessive variance (garbled)    9        Too many frames have wrong vehicle direction    10       Too many frames have a low speed out of range    11       Too many frames have a high speed out of range    12       Too may samples taken before QCFINAL    13       2's complement arithmetic overflow in QCFINAL    14       Not enough samples take before QCFINAL    15       MAXDSDT exceeds TH5 in QCFINAL    16       VARS exceeds TH6 in QCFINAL    17       ABSDIF of speed over interval does not exceed TH7    ______________________________________

The specific reasons listed in the above table will be described indetail below with reference to the steps in the control procedure ofFIGS. 29 to 35 that assign the respective values to "VOIDNO".

Turning now to FIG. 29, the control procedure begins in a first step 401where the second CPU (121 in FIG. 4A) reads the intra-processor memory(107 in FIG. 4B) to obtain a frame of an energy spectrum computed by thefirst CPU (101 in FIG. 4B). The frame also includes a direction flag(DF) indicating whether a vehicle passing through the radar beam isapproaching or receding the surveillance vehicle. In step 402 the newspectrum just obtained in step 401 is compared to the spectrum last usedfor computing statistics. (The very first time step 402 is executed, thenew spectrum will be compared to a spectrum that has zero energy.) Thenin step 403, execution branches back to step 401 if any one of the 250spectral energy values of the new spectrum differs from thecorresponding spectral energy value of the last-used spectrum by apredetermined threshold value TH1. This is done to save computationalresources because in the absence of any vehicle in the radar beam, thespectrum does not change significantly, and therefore there is no needto compute the statistics for the spectrum. Otherwise, when a vehicleenters the radar beam, the spectrum does change significantly, and instep 404 the statistics for the new spectrum are computed.

In step 404, the second CPU computes a mean velocity (MEANV), a varianceof the velocity about the mean (VAR), and a maximum value (MAXDEDV) ofthe absolute value of the difference between the energy at one velocityinterval and the energy at a neighboring velocity interval. Then in step405, the total energy of the spectrum is compared to a predeterminedthreshold TH2 to initially decide whether there is a vehicle in theradar beam. If the total energy is less than the threshold TH2, then itis assumed that there is not a vehicle in the radar beam, and executionbranches back to step 401. Otherwise, execution continues to step 406.

Steps 401 to 405 may comprise a single subroutine (called QCENTRY) thatis called to fetch statistics for a frame of energy spectrum of theDoppler signal of a vehicle entering the radar beam. A listing of such asubroutine is shown below:

    ______________________________________    C*** SUBROUTINE QCENTRY    10     Load the next frame of energy spectra into the array E    20     FOR J=0 TO 155    30     DEDT ← ABS(E1(J) - E(J))    40     IF (DEDT > TH1) THEN GOTO 70    50     NEXT J    60     GOTO 10    70     MAXDEDV ← 0    80     E1(0) ← E(0)    90     SUME ← E(0)    100    V ← 15    110    SUMEV ← E(0) * V    120    FOR J=1 TO 255    130    E1(J) ← E(J)    140    DEDV ← ABS(E(J) - E(J-1))    150    IF (DEDV > MAXDEDV) THEN MAXDEDV ← DEDV    160    SUME ← SUME + E(J)    170    V ← V + DELTA    180    SUMEV ← SUMEV + (E(J) * V)    190    NEXT J    200    IF (SUME < TH2) THEN GOTO 10    210    MEANV ← SUMEV/SUME    220    V ← 15    230    DEV ← V - MEANV    240    DEVSQ ← DEV * DEV    250    SUMVAR ← DEVSQ * E    260    FOR J=1 TO 255    270    V ← V + DELTA    280    DEV ← V - MEANV    290    DEVSQ ← DEV * DEV    300    SUMEVAR ← DEVSQ * E    310    NEXT J    320    VAR ← SUMEVAR/SUMEV    330    RETURN    ______________________________________

Returning now to FIG. 29, in step 406, a flag DFENT is set to the valueof the direction flag DF so that DFENT indicates the direction of thevehicle entering the radar beam. Also in step 406, VOIDNO is set tozero. Then in steps 407 to 415, the second CPU applies a number of teststo verify that the statistics computed in step 404 are appropriate forindicating the speed of a single vehicle in the radar beam.

Step 407 checks whether arithmetic overflow occurred during thecomputation of statistics in step 404. Absent a processor malfunction,overflow should not occur for the signal range of the analog-to-digitalconverters (102, 103 in FIG. 4B). For two's complement arithmetic, forexample, arithmetic overflow occurs during addition of two positivenumbers having a total that is too large to be represented as a positivetwo's complement number. Arithmetic overflow is indicated by a bitbecoming set in a status register of the second CPU. By checking thestatus register bit after an arithmetic operation, the second CPU isresponsive to arithmetic overflow in step 407, and if arithmeticoverflow occurs, then in step 408, the second CPU sets VOIDNO to one. Ifarithmetic overflow is not found in step 407, then execution continuesto step 409 of FIG. 30.

As shown in FIG. 30, in step 409, the second CPU checks for excessiveslope in the energy spectrum, by comparing MAXDEV to a predeterminedthreshold TH3. As explained above with reference to FIGS. 27 and 28,excessive slope is an indication of more than one vehicle in the radarbeam. The threshold TH3 is selected so that TH3 is less than the slopefrom a signal having a single peak. Therefore, if in step 409 the secondCPU finds that MAXDEDV exceeds TH3, then in step 410 the second CPU setsVOIDNO to 2.

In step 411, the second CPU checks for excessive variance in the energyspectrum, by comparing VAR to a predetermined threshold TH4. Asexplained above with reference to FIGS. 27 and 28, excessive variance isan indication of more than one vehicle in the radar beam. The thresholdTH4 is selected so that TH4 is less than the variance from a signalhaving a single peak. Therefore, if in step 411 the second CPU findsthat VAR exceeds TH4, then in step 412, the second CPU sets VOIDNO to 3.

In steps 413 and 414, the second CPU determines whether the meanvelocity MEANV falls within a valid speed range, for example, between 17m.p.h. and 118 m.p.h. In step 413, the second CPU compares MEANV to apredetermined minimum value MINV, and in step 414, the second CPUcompares the mean value MEANV to a predetermined maximum value MAXV. Ifthe mean velocity falls outside the range, then in step 415, the secondCPU sets VOIDNO to 4.

If the mean velocity computed in step 404 has not been voided in steps408, 410, 412, or 415, then in step 416, execution branches depending onwhether the vehicle in the radar beam is approaching or receding fromthe surveillance vehicle. As described above, the traffic monitoringsystem is configured for photographing only approaching vehicles, andtherefore execution branches from step 416 to step 417 only when DFENTequals one, indicating that the vehicle in the radar beam is approachingthe surveillance vehicle. The traffic monitoring system could beconfigured for also photographing receding vehicles by including anadditional camera, and in this case execution would continue from step416 to additional steps (not shown) that would be similar to steps 417to 421 but which would check for violation of a speed limit for recedingtraffic, and would check the status of the additional camera forphotographing receding vehicles.

In step 417 the mean velocity is compared to a speed limit (SLIMIT) forapproaching traffic to determine whether a vehicle entering the radarbeam is violating the posted speed limit. Although additional tests willbe performed to verify a speed violation, at this point at least thetime of entry of the vehicle into the radar beam should be recorded inorder to determine when a photograph of the front of the vehicle shouldbe taken. Alternatively, the photograph can be taken at this time, but,in this case, the photograph must be voided if the additional testsindicate that the measured speed of the vehicle is not accurate. If thepicture is not taken immediately, then it is necessary to schedule thetaking of the photograph at a later time, in dependence upon the speedof the vehicle, so that the picture will be taken when the front of thevehicle is aligned in the field of view of the front-view camera. If thephotograph is taken immediately, then film will be wasted when thephotograph is voided by the following tests.

In any case, a photograph cannot be taken if the front-view camera isout of film, as tested in step 418, or if the camera film in thefront-view camera is not being advanced so that a fresh frame of filmwill not be in place in the film magazine at the time that thephotograph needs to be taken. Therefore, if step 417 determines that themean velocity exceeds the speed limit (SLIMIT), then execution branchesto step 418. In step 418, the second CPU checks whether the front-viewcamera is out of film, and, if so, execution branches to step 419 wherethe second CPU sets VOIDNO to 5. If in step 418 the second CPU findsthat the front-view camera is not out of film, then execution branchesto step 420 where the second CPU checks whether the film is beingadvanced in the front-view camera. If so, then in step 421, the secondCPU sets VOIDNO to 6. Otherwise, in step 422, the second CPU eitheractivates the front-view camera to take a picture, or records thecurrent time so that the picture can be taken later, once the speed ofthe vehicle has been verified. If the second CPU finds in step 417 thatthe mean velocity does not exceed the speed limit, or after steps 408,410, 412, 415, 415, 417, 418 or 421, execution continues in step 430 ofFIG. 31.

Turning now to FIG. 31, in step 430, the second CPU computes an initialprocessor checksum by reading a few constants from memory, andperforming on the constants a series of addition, subtraction, shift,load, and store operations similar to the operations used in thecomputation of the first speed sample. In other words, a check is madefor malfunction of the second CPU and its associated memory (133, 123 inFIG. 4C) that could cause an error in the speed sample.

In step 431, the second CPU begins processing for intermediate frames ofspectrum by setting a number of down-count variables to initial values.A first down-count variable ENDDET keeps track of the number ofsuccessive frames with a drop-out in energy level. For example, aftertwo successive frames where there is a drop-out in energy, it is assumedthat the vehicle has exited the radar beam. In this case, the initialvalue ENDMAX of ENDDET is equal to 1.

In step 431, a number of other count-down variables are set to initialvalues, and each time a new frame of energy spectrum is inspected andfound to satisfy a condition associated with the down-count variable,then the down-count variable is decremented, and when the down-countedvariable reaches a value of zero, then the speed measurement is voided.The down-count variables include DROPOUT, being decremented upon adrop-out in signal energy; a variable GARBLED, being decremented when anenergy spectrum possibly indicates more than one vehicle in the radarbeam; a down-count variable WWAY, decremented when a direction flag fora new frame of energy spectrum is different from the direction indicatedby the vehicle entry flag DFENT; a down-count variable TOOFAST,decremented when the mean velocity computed for a new frame of energyspectrum indicates a velocity that is too fast; and a down-countvariable TOOSLOW, decremented when the mean velocity computed for a newframe of energy spectrum indicates a velocity that is too slow. In step431, these downcount variables are set to respective initial valuesDROPMAX, GARBMAX, WWMAX, TOOFASTMAX, and TOOSLOWMAX, which have values,for example, of 1. Also in step 431, a sample counter value NSAMP is setequal to 1, and the first element of an array named SPEED is set equalto the previously-computed mean velocity MEANV.

In the next step 432, the second CPU obtains a frame of energy spectrumcomputed by the first CPU, as was described above with reference to step401. Then in step 433, the new spectrum is compared to the last usedspectrum, as was described above with reference to step 402. Next, instep 434, execution branches depending on whether the absolute value ofthe difference between any energy value in the new spectrum and itscorresponding energy value in the old spectrum is greater than thepredetermined threshold TH1, as was described above with reference tostep 403. If there is an energy value having a difference greater thanTH1, then execution continues to step 435; otherwise, step 435 isbypassed. In step 435, the second CPU computes statistics of the newspectrum, in the same manner as was described above with reference tostep 404.

Continuing now to step 441 in FIG. 32, the second CPU checks whether thetotal energy in the spectrum (indicated by the variable SUME) is lessthan the predetermined threshold TH2. If so, then a "drop-out" hasoccurred, and execution branches from step 441 to step 442. In step 442,the second CPU checks whether the down-count variable ENDDET is lessthan or equal to zero. If so, then the vehicle has exited the radarbeam, and execution branches to the QCFINAL portion of the controlprocedure shown in FIG. 33. Otherwise, execution branches from step 442to step 443, where the second CPU decrements the down-count variableENDDET. From step 443, execution continues to step 444 where thedown-count variable DROPOUT is compared to zero. If the down-countvariable DROPOUT is less than or equal to zero, then execution branchesto step 445 where VOIDNO is set equal to 7. Otherwise, executioncontinues from step 444 to step 446, where the down-count variableDROPOUT is decremented by 1.

If in step 441 the total energy SUME is not less than TH2, thenexecution continues to step 447 where the down-count variable ENDDET isset equal to its predetermined initial value ENDMAX. Then in step 448,execution branches depending on whether the value of MAXDEDV for the newspectrum is greater than the predetermined threshold TH3. If so, thenexecution branches to step 450. Otherwise, execution continues to step449, where execution also branches to step 450 if the variance VAR forthe new spectrum is greater than the predetermined threshold TH4. Instep 450, execution branches to step 451 if the down-count variableGARBLED is less than or equal to zero. If so, then in step 451, VOIDNOis set equal to 8. Otherwise, execution continues from step 450 to step452, where the CPU decrements the down-count variable GARBLED by 1.

If in step 449 the variance VAR is not greater than the threshold TH4,then execution continues to step 453. In step 453, the second CPUcompares the direction flag DF for the new frame to the direction flagDFENT to determine whether a reversal of vehicle direction is indicated.If DFENT is not equal to DF, then execution branches to step 454. Instep 454, execution branches to step 455 if the down-count variable WWAYis less than or equal to zero. In step 455, the second CPU sets VOIDNOto 9. Otherwise, execution continues from step 454 to step 456, wherethe second CPU decrements the down-count variable WWAY by 1.

If in step 453, DFENT equals DF, then execution continues to step 457.In step 457, execution branches to step 458 if the mean velocity MEANVfor the new spectrum is greater than the predetermined maximum valueMAXV. In step 458, execution branches to step 459 if the down-countvariable TOOFAST is less than or equal to zero. In step 459, the secondCPU sets VOIDNO to 10. Otherwise, execution branches from step 458 tostep 460 where the second CPU decrements the down-count variable TOOFASTby 1. If in step 457 the mean value MEANV is not greater than MAXV, thenexecution continues to step 471 in FIG. 33.

Turning to FIG. 33, in step 471, execution branches when the meanvelocity MEANV is less than the predetermined minimum value MINV. If so,in step 472, the second CPU branches to step 473 if the down-countvariable TOOSLOW is less than or equal to zero. In step 473, the secondCPU sets VOIDNO to 11. Otherwise, execution continues from step 472 tostep 474, where the second CPU decrements the down-count variableTOOSLOW by 1.

Otherwise, in step 471, execution continues to step 475 if the meanvelocity MEANV is less than the minimum value MINV. In step 475,execution branches to step 476 if the sample counter variable NSAMP isgreater than NMAX. In step 476, the second CPU sets VOIDNO to 12, andthen execution branches to step 480.

If in step 475 the sample counter variable NSAMP is not greater thanNMAX, then execution continues in step 477 where the second CPUincrements NSAMP by 1. Then in step 478, the second CPU loads the meanvelocity MEANV into the array SPEED at the location NSAMP. Then in step479, the second CPU computes a new processor checksum from thelast-computed processor checksum, again using a series of addition,subtraction, shift, load, and store operations similar to the operationsused in the computation of the mean velocity MEANV. After step 479 andalso after steps 445, 446, 451, 452, 455, 456, 459, 460, 473, or 474,execution loops back to step 432.

In step 480, the second CPU computes statistics for the speed values inthe array SPEED. The statistics, for example, are computed by asubroutine as listed below:

    ______________________________________    500     MAXDSDT ← 0    510     SUM ← SPEED(1)    520     FOR J=1 TO NSAMP    530     DSDT ← ABS(SPEED(J) - SPEED (J-1))    540     IF (DSDT>MAXDSDT) THEN MAXDSDT ← DSDT    550     SUM ← SUM + SPEED(J)    560     NEXT J    570     MEANS ← SUM/NSAMP    580     DEV ← SPEED(1) - MEANS    590     SUMSVAR ← DEV * DEV    600     FOR J=2 TO NSAMP    610     DEV ← SPEED(J) - MEANS    620     DEVSQ ← DEV * DEV    630     SUMVAR ← SUMVAR + DEV * DEV    640     NEXT J    650     VAR ← SUMVAR/NSAMP    ______________________________________

After step 480, execution continues in step 481. In step 481, executionbranches to step 482 if there is an arithmetic overflow error from thecomputation of the statistics in step 480. The arithmetic overflow erroris detected as described above with reference to step 407 of FIG. 29. Ifan arithmetic overflow error is detected, then execution branches tostep 482 of FIG. 33 where the second CPU sets VOIDNO to 13. Otherwise,execution continues from step 481 to step 483. In step 483, executionbranches to step 484 if the sample counter variable NSAMP is less than apredetermined minimum value NMIN. In step 484, the second CPU setsVOIDNO to 14. Otherwise, execution continues from step 483 to step 491in FIG. 34.

Turning now to FIG. 34, in step 491, execution branches to step 492 ifMAXDSDT is greater than a predetermined threshold TH5. This occurs whenthere is a large discontinuity between excessive speed measurements. Forexample, suppose the speed samples in the array SPEED were 48, 48, 48,48, 55, 55, 55, 55. The big difference between the fourth sample at 48miles per hour and the fifth sample at 55 miles per hour indicates thattwo vehicles were in the radar beam, one having a speed of 48 miles perhour or lower, and the other having a speed of at least 55 miles perhour. A value of about 0.5 miles per hour for the threshold TH5 wouldcause such a sequence of speed samples to be voided.

In this case, in step 492, the second CPU sets VOIDNO to 15. Otherwise,execution continues from step 491 to step 493.

In step 493, execution branches to step 494 if the variance in the speedmeasurements (VARS) is greater than a predetermined threshold TH6. Instep 494, the second CPU sets VOIDNO to 16. Otherwise, executioncontinues from step 493 to step 495. In step 495, execution branches tostep 496 if the direction flag DFENT is equal to 1. In this case, thevehicle passing through the radar beam is approaching the surveillancevehicle. Due to the cosine factor affecting the relationship between thevelocity of the vehicle passing through the radar beam and the frequencyof the Doppler signal, the measured speed should decrease so that thefirst speed measurement is greater than the last speed measurement by atleast a predetermined threshold TH7. Therefore, in step 496, thedifference in speed ABSDIF is computed by subtracting the last speedmeasurement SPEED(NSAMP) from the first speed measurement SPEED(1).Otherwise, execution continues from step 495 to step 497 when thevehicle passing through the radar beam is receding from the surveillancevehicle. In step 497, the first speed sample SPEED(1) is subtracted fromthe last speed sample SPEED(NSAMP).to compute the difference ABSDIF.After step 496 or step 497, execution continues in step 498. In step498, the threshold TH7 is determined from a constant threshold value TH8prior to the time that the threshold is used in step 499. In particular,the threshold TH7 is obtained in step 498 by multiplying TH7 by the meanspeed MEANS, because the change in speed due to the cosine dependence isproportional to the speed of the vehicle in the radar beam. Executioncontinues from step 498 to step 499, where execution branches to step500 if the difference ABSDIF is not greater than the predeterminedthreshold TH7. In step 500, the second CPU sets VOIDNO to 17, andexecution continues in step 501. Execution also continues to step 501from step 499 when ABSDIF is greater than TH7. Moreover, executioncontinues to step 501 from steps 482 and 484 of FIG. 33, and from steps492 and 494 of FIG,. 34.

In step 501, the second CPU computes a final processor checksum fromprocessor checksum that was last computed in step 479 of FIG. 33. Thecomputations in step 501 also include addition, subtraction, shift,load, and store operations similar to the operations performed by thesecond CPU in computing the mean speed (MEANS). Then in step 502, thesample counter NSAMP is used as an index to fetch from a table anexpected checksum that should be equal to the final processor checksumbut for a malfunction of the second CPU or its associated memory (122,123 in FIG. 4C). Execution then continues to step 511 of FIG. 35.

In step 511 of FIG. 35, the final processor checksum computed in step501 of FIG. 34 is compared to the checksum fetched in step 502 of FIG.35, and if the checksums do not match, then there is a checksum errorand execution branches to step 512. In step 512, an error codeidentifying the processor checksum error is transmitted to the laptopcomputer (67 in FIG. 2), and then the second CPU is shut down byexecuting a stop or halt instruction. This is an example of one of anumber of abnormal conditions that cause the system to shut down andthat should not occur but for a system failure that might affect a speedmeasurement or otherwise should require repair of the system. Forexample, the system is shut down if the second CPU reads an illegalhand-shaking code from the intra-processor RAM 107, or if a number ofparity, frame, or overrun errors occur in the serial communicationbetween the second CPU and the laptop computer.

When the checksums match in step 511, execution continues to step 513.In step 513, execution branches to step 518 if DFENT is not equal toone, because the traffic monitoring system has been configured tophotograph only the approaching vehicles. Otherwise, execution continuesfrom step 513 to step 514. In step 514, execution branches to step 517if VOIDNO is not equal to zero. Otherwise, execution continues to step515, which checks whether the first speed sample is greater than thespecified speed limit (SLIMIT). If not, execution branches to step 517.If so, then step 422 of FIG. 30 was reached previously, and thereforeexecution continues to step 516 of FIG. 35, where the mean speed iswritten on the photograph. If a photograph was already taken of thefront of the vehicle in step 422, then in step 516, the mean speed iswritten on the photograph, and if a photograph has not yet been taken ofthe front of the vehicle, then a photograph is scheduled to be taken ofthe front of the vehicle, and the mean speed is written on thephotograph after the photograph has been taken. After step 516,execution continues to step 517. In step 517, the video push-down stackis updated by pushing the time and mean speed on the stack if VOIDNO iszero, and if VOIDNO is not zero, pushing the time and "**" on the stackto indicate that the approaching traffic included a vehicle at thattime, but the speed of that vehicle was not verified. After step 517,and after step 513 if DFENT is not equal to one, execution continues tostep 518. In step 518, the second CPU records the time, date, location,mean speed, void number (VOIDNO), and the vehicle direction (DFENT), inorder to have a record of all of the cases in which a vehicle wasdetected passing through the radar beam. From step 518, executionreturns to step 401 in FIG. 29 in order to monitor the passing ofanother vehicle through the radar beam.

In view of the above, there has been described a traffic monitoringsystem that uses frequency-domain processing of a Doppler signal toobtain more accurate speed measurements. The frequency domain-processingof the present invention rapidly determines whether false signals arepresent, and obtains more accurate speed measurements by rejecting orinvalidating speed measurements that could be inaccurate due to thepresence of false signals caused by multiple vehicles being present inthe radar beam, or by reflections from tires.

What is claimed is:
 1. A method of determining a speed of a movingvehicle, said method comprising the steps of:(a) operating a Dopplerradar transceiver to generate a Doppler signal responsive to said speedof said moving vehicle; (b) operating a digital computer to transformsaid Doppler signal into a frequency domain signal, and to determinesaid speed of said moving vehicle by computing a statistic of saidfrequency domain signal, wherein the frequency domain signal indicates adistribution of energy of the Doppler signal as a function of frequency.2. The method as claimed in claim 1, wherein said digital computertransforms said Doppler signal into a frequency domain signal bycomputing a fast Fourier transform of the Doppler signal.
 3. The methodas claimed in claim 1, further comprising the step of computing adifferential of said frequency domain signal with respect to frequency,and comparing said differential to a threshold, and rejecting said meanvalue as a correct indication of said speed of said vehicle when saiddifferential exceeds said threshold.
 4. The method as claimed in claim1, wherein said frequency domain signal indicates a distribution ofenergy of said Doppler signal as a function of frequency, and saidstatistic is a moment of said distribution of energy of said Dopplersignal as a function of frequency.
 5. The method as claimed in claim 4,wherein said moment is a weighted arithmetic mean of said distributionof energy of said Doppler signal as a function of frequency.
 6. Themethod as claimed in claim 4, wherein said moment is a variance about amean of said distribution of energy of said Doppler signal as a functionof frequency.
 7. The method as claimed in claim 1, wherein saidstatistic is a mean value of said frequency domain signal, and said meanvalue indicates said speed of said vehicle.
 8. The method as claimed inclaim 7, further comprising the steps of computing a variance of saidfrequency domain signal about said mean value, comparing said varianceto a threshold, and rejecting said mean value as a correct indication ofsaid speed of said vehicle when said variance exceeds said threshold. 9.The method as claimed in claim 7 further comprising the steps ofidentifying portions of said frequency-domain signal having frequenciesthat differ from said mean value by more than a threshold, andrecomputing said mean value while excluding the identified portions ofsaid frequency-domain signal, so that the recomputed mean value is aneven better indication of the speed of said moving vehicle.
 10. A methodof monitoring moving vehicles, said method comprising the steps of:(a)operating a Doppler radar transceiver to generate a Doppler signalresponsive to speeds of said moving vehicles; and (b) operating adigital computer to transform said Doppler signal into a frequencydomain signal, wherein the frequency domain signal indicates adistribution of energy of the Doppler signal as a function of frequency,and wherein the frequency domain signal has successive portions, and foreach portion, (i) to compute a mean value of said each portion of saidfrequency domain signal, (ii) to compute a variance of said each portionof said frequency domain signal from said mean value, and (iii) tocompare said variance to a threshhold, and when said variance is greaterthan said threshhold, to reject said each portion of said frequencydomain signal as an indication of a speed of any of said vehicles, andwhen said variance is less than said threshhold, to compute from saideach portion of said frequency domain signal a measurement of speed ofone of said signals.
 11. The method as claimed in claim 10, wherein saidstep of transforming is performed by converting said Doppler signal todigital samples, and performing a discrete Fourier transform onsuccessive groups of said digital samples, each of said successivegroups of digital samples being transformed to produce a correspondingone of said portions of said frequency domain signal.
 12. The method asclaimed in claim 11, wherein each portion of said frequency domainsignal comprises a series of energy values for respective frequencyintervals.
 13. The method as claimed in claim 10, which includes thestep of averaging a plurality of speed samples from a plurality of saidsuccessive portions of said Doppler signal in order to compute saidmeasurement of speed of one of said vehicles.
 14. The method as claimedin claim 13, further including the step of computing a variance of saidspeed samples from said measurement of speed of one of said vehicles,and comparing said variance of said speed samples to a threshold valuein order to validate said measurement of speed of one of said vehicles.15. The method as claimed in claim 13, further including the step ofcomputing differences between successive speed samples, and comparingsaid differences to a threshold in order to validate said measurement ofspeed of one of said vehicles.
 16. A traffic monitoring systemcomprising:(a) a Doppler radar transceiver for emitting a radar beam andgenerating a Doppler signal responsive to speed of a vehicle when saidvehicle passes through said radar beam; (b) an analog-to-digitalconverter connected to said Doppler radar transceiver for convertingsaid Doppler signal into a series of digital samples which are frequencydomain signals that indicate a distribution of energy of the Dopplersignl as a function of frequency; and (c) digital computer meansconnected to said analog-to-digital converter for computing a discreteFourier transform of successive groups of said series of digital samplesto produce a series of frames of spectrum, and from said series offrames of spectrum, to detect the presence of said vehicle in said radarbeam and to compute te speed of said vehicle.
 17. The traffic monitoringsystem as claimed in claim 16, wherein said digital computer meansincludes means for computing a mean frequency of said spectrum, meansfor computing a variance of said spectrum about said mean frequency,means for comparing said variance of said spectrum to a threshold, andmeans responsive to said variance being less than said threshold forverifying that said vehicle has a speed indicated by said meanfrequency.
 18. The traffic monitoring system as claimed in claim 16,wherein said digital computer means includes a first central processorconnected to said analog-to-digital converter for computing saiddiscrete Fourier transform, and a second central processor connected tosaid first central processor for detecting the presence of said vehiclein said radar beam and for computing the speed of said vehicle from saidseries of frames of spectrum.
 19. The traffic monitoring system asclaimed in claim 16, wherein said Doppler radar transceiver includes apair of detector diodes for generating a pair of channels for saidDoppler signal, and wherein said digital computer means includes meansfor computing discrete Fourier transforms for each channel and combiningthe discrete Fourier transforms for the channels to produce said seriesof frames of spectrum.
 20. The traffic monitoring system as claimed inclaim 16, wherein said digital computer means includes means forcomputing a speed sample for each frame of spectrum, means for computingan average of a series of said speed samples, means for computing avariance of said series of said speed samples about said average, andmeans for comparing said variance of said series of said speed samplesto a threshold for verifying that said average represents the speed ofsaid moving vehicle.